2016-04-21 8 views
-3

Ich habe eine Zeichenfolge "Economy 1 Bett, Typ 452, LCD 4 Kingsize-Bett, 11 Doppelbett". Von der obigen Zeichenfolge habe ich gebeten, die Zählung wie 1 + 4 = 5 zu erhalten. Wenn die Zahl größer als 10 in der angegebenen Zeichenfolge ist, dann ignorieren Sie die hinzuzufügende Zahl (also ignorieren Sie 452 und 11). Kann jemand Logik dafür schreiben ??Getting Gesamtanzahl von der Zeichenfolge

String a="Economy Double , 1 queen bed 42 lcd"; 
int sum = 0; 
String num = ""; 
for(int i = 0; i < a.length(); i++) { 
    if(Character.isDigit(a.charAt(i))) { 
     num = num + a.charAt(i); 
    } else { 
     if(!num.equals("")) { 
      sum = sum + Integer.parseInt(num); 
      num = ""; 
     } 
    } 
} 
System.out.println(sum); 
+0

was Sie – sidgate

+1

ausprobiert haben, werden wir nicht tun dies für Sie, aber wir können definitiv helfen - wie Hast du gedacht, dieses Problem zu lösen? – duduamar

+1

Diese Website ist kein Code-Schreibdienst. Versuchen Sie, das Problem selbst zu lösen und kommen Sie zurück, wenn Sie spezielle Probleme haben. –

Antwort

0

Angenommen, Sie nur Zahlen berücksichtigen müssen < 10, dann sollte dies tun es (quick and dirty und langsam):

String a = "1 Economy 1 bed, type 452, lcd 4 king bed , 11 queen bed 2"; 
    int sum = 0; 

    for(int i = 0; i < a.length(); i++) { 
     char currChar = a.charAt(i); 
     if(Character.isDigit(currChar)) { 
     if(i -1 >= 0 && i+1 < a.length() && !Character.isDigit(a.charAt(i+1)) && !Character.isDigit(a.charAt(i-1))){ 
      sum += Character.getNumericValue(currChar); 
     }else if(i+1 >= a.length() && !Character.isDigit(a.charAt(i-1))){ 
      sum += Character.getNumericValue(currChar); 
     }else if(i == 0 && !Character.isDigit(a.charAt(i+1))){ 
      sum += Character.getNumericValue(currChar); 
     } 
     } 
    } 
    System.out.println(sum); 
+0

Außer dass es Zahlen> 10 nicht interessiert. –

+0

Ja sicher, aber er will nur Zahlen <10 betrachten? – eol

+0

Es fügt alle Ziffern hinzu. Ich möchte Zahlen unter 10 hinzufügen. – yogesh

1

Die meisten der Code korrekt ist. Fügen Sie einfach die Bedingung in dieser Zeile:

sum = sum + Integer.parseInt(num); 

Und es ändern:

sum += (Integer.parseInt(num)<10 ? Integer.parseInt(num) : 0); 
Verwandte Themen