2017-08-03 5 views
-1

ceci est mon code:Comment séparer un numéro d'un texte dans Android?

String addchar = ""; 
String tempchar; 
int len = strline.length(); 
char[] chars = strline.toCharArray(); 
int amount = 0; 

for (int i = 0; i < len; i++) { 
    tempchar = String.valueOf(chars[i]); 
    if (tempchar == "0" || tempchar == "1" || tempchar == "2" || tempchar == "3" || tempchar == "4" || tempchar == "5" || tempchar == "6" || tempchar == "7" || tempchar == "8" || tempchar == "9") { 
     addchar=tempchar+addchar; 
    } 
} 

amount=Integer.parseInt(addchar); 

mais quand exécuter ce code, je vois que amount est vide! Je veux extraire, le nombre qu'il ya dans strline

+0

Quel type d'entrée vous attendez? –

+0

Mon numéro est signé – AzadGh

Répondre

1

légèrement moins élégante que la réponse de Nilesh, mais comme une alternative:

StringBuilder sb = new StringBuilder(); 

for (char c : strline.toCharArray()) { 
    if ((sb.length() == 0 && "-".equals(c)) || Character.isDigit(c)) sb.append(c); 
} 

int amount = Integer.parseInt(sb.toString()); 

Modifier modifiée pour permettre un signe négatif initial

+0

J'ai un autre problème: Mon numéro est signé Comment puis-je obtenir le numéro (-ou +)? – AzadGh

+0

Mis à jour ma réponse. Cela autorisera un signe moins tant qu'aucun chiffre n'a encore été trouvé. Ignorer + comme un manque de moins déduira une valeur positive. –

1

essayer cette utilisation matcher

Matcher matcher = Pattern.compile("\\d+").matcher("a22dsdddd212"); 
while(matcher.find()) { 
    Log.e("number :-> ",matcher.group()+""); 
} 
0

Si vous voulez que tous ombles numérique, vous pouvez utiliser ReplaceAll ainsi:

String numericString = strline.replaceAll("[^0-9]", ""); 

puis utilisez ParseInt.

Espérons que ça aide.

+0

Aussi une option, bien que l'utilisation de \\ d peut être meilleure –

+0

'\ d' peut ne pas fonctionner en combinaison avec parseInt. Voir https://stackoverflow.com/questions/890686/should-i-use-d-or-0-9-to-match-digits-in-a-perl-regex pour des différences entre '\ d' et' 0-9' – Fusselchen

+1

Vous êtes les bienvenus. Acceptez la réponse si cela vous aide. –