2017-07-26 28 views
5

Java'da, bir String'in boş olup olmadığını kontrol etmek için her zaman myString.isEmpty()'u kullanmamız gerektiğini hatırlattık. Ancak Kotlin'de, myString == "" veya myString.isEmpty() veya hatta myString.isBlank()'u kullanabileceğinizi buldum.Kotlin'de dize boş olup olmadığını kontrol etme

Bu konuda herhangi bir yönerge/öneri var mı? Yoksa basitçe "tekneni sallayan bir şey" mi?

Merakımı beslemek için şimdiden teşekkür ederiz. : D

cevap

9

myString == "" kullanmayın, java bu da tavsiye edilmez myString.equals("") olurdu.

isBlankisEmpty ile aynı değildir ve gerçekten kullanım durumunuza bağlıdır.

isBlank Bir char dizisinin 0 uzunluğuna sahip olduğunu veya tüm dizinlerin beyaz boşluk olduğunu kontrol eder. isEmpty sadece bir dize boş dize "" tam olarak eşit olduğunu test etmek istediğinizde Char dizisi uzunluğu Kullanım isEmpty 0.

/** 
* Returns `true` if this string is empty or consists solely of whitespace characters. 
*/ 
public fun CharSequence.isBlank(): Boolean = length == 0 || indices.all { this[it].isWhitespace() } 


/** 
* Returns `true` if this char sequence is empty (contains no characters). 
*/ 
@kotlin.internal.InlineOnly 
public inline fun CharSequence.isEmpty(): Boolean = length == 0 
+0

Kesinlikle myString.equals ("") 'ı unuttum. Sanırım Java'da bunu asla söylemediğimden beri yapmam. Hatırlatıcı ve açık bir açıklama için teşekkürler! – Aba

2

olduğunu kontrol eder.

kullanın isBlank bir dize boşsa veya sadece test etmek istiyorum (" ", "") boşluk oluşur.

== ""'u kullanmaktan kaçının.

+0

Çok basit bir şekilde koyduğunuz için teşekkür ederim. Şimdilik görünmez bir geri bildirimde bulunabildim, şerefe! :) – Aba

4

Dize İçin? (Null String) veri türü, ben .isBlank()

kullanın dize için .isNullOrBlank()

kullanamıyorum? Çünkü çoğu zaman, boşlukları olan Strings'e izin vermek istemiyorum (ve .isBlank() boş boşlukların yanı sıra boşlukları da denetler). Boşluk ile ilgilenmiyorsanız, String için .isNullorEmpty() ve .isEmpty() kullanın? ve Dize, sırasıyla.

+1

Ayrıca her zaman isBlank() kullanmayı düşündüm, ama şifrelerin aslında boşluk olabileceğini biliyor muydunuz? Elbette, izin vermene bağlı. Nullable String ile ilgili hatırlatıcınız için teşekkürler! İşte görünmez bir not. : D – Aba

+0

Durumunuza bağlı, ancak çoğu web sitesi/arka uç tarafından yalnızca boş bir alan parolasına izin verilmeyeceğini varsayalım. Sonra tekrar denemedim! Ancak aşırı uç durumlarda +1 –

İlgili konular