SORU
13 Mayıs 2012, Pazar


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
13 Mayıs 2012, Pazar


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).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Commander Chalkboard

    Commander Ch

    20 Ocak 2014
  • J Medema

    J Medema

    11 EKİM 2006
  • WPBeginner - WordPress Tutorials

    WPBeginner -

    17 Temmuz 2009