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

  • Google Analytics

    Google Analy

    25 ŞUBAT 2008
  • GoProTutorials

    GoProTutoria

    18 NİSAN 2011
  • InsideBlackBerry

    InsideBlackB

    14 Aralık 2009