Java Dize - dize sadece sayılar ve harfler içeriyorsa Görmek
Benim uygulama boyunca yük olan bir dize var, ve bu sayılar harfler için ve bu gibi değişiklikleri. if
Eğer harf veya rakam içeriyorsa görmek için basit bir açıklama var ama, bir şey düzgün çalışmıyor. Burada bir parçacık.
String text = "abc";
String number;
if (text.contains("[a-zA-Z] ") == false && text.length() > 2) {
number = text;
}
text
değişken harfler içeren, ancak durumu true
olarak verir. Ve &&
hem koşulları olarak number = text;
işlemek için true
olmak zorunda eval
==============================
Çözüm:
Bu aşağıdaki kod, bu soru üzerinde yorum tarafından sağlanan bilgileri kullanarak bu sorunu çözmeyi başardım. Tüm diğer görevi de geçerli!
Çalışan ne ilk yorum geldi. Kodları verilen tüm örnek de geçerli gibi görünüyor olsa da!
String text = "abc";
String number;
if (Pattern.matches("[a-zA-Z] ", text) == false && text.length() > 2) {
number = text;
}
CEVAP
Eğer metin olarak sayı işleme olacak olursa, o zaman değiştir:
if (text.contains("[a-zA-Z] ") == false && text.length() > 2){
için:
if (text.matches("[0-9] ") && text.length() > 2) {
Dize olup olmadığını kontrol etmek yerineyokalfabetik karakterler içerir emin olmak için kontrol içerirsadeceçalışma problemleri.
Eğer gerçekten sayısal değeri kullanmak istiyorsanız, Diğerleri aşağıda açıklandığı gibi Integer.parseInt()
Double.parseDouble()
kullanın.
Bir yan not olarak, genellikle true
false
boolean değerleri kabul kötü bir uygulamadır. Sadece kullanmak if (condition)
if (!condition)
.
'in ne kontrol etmek için en iyi ...
Dize tek boşluk ile 2 veya daha fazla ...
Nasıl dize karakter ve boşluk içeriyor...
Java: eğer numaralama belirli bir dize...
Nasıl bir dize başka bir dize içeriyor...