J'ai une longue ficelle. Quelle est l'expression régulière pour diviser les nombres dans le tableau?
Est-ce que vous enlevez ou divisez? Cela supprimera tous les caractères non numériques.
myStr = myStr.replaceAll( "[^\\d]", "" )
Une autre approche pour supprimer tous les caractères non numériques d'une chaîne:
String newString = oldString.replaceAll("[^0-9]", "");
String str= "somestring";
String[] values = str.split("\\D+");
Une autre solution regex:
string.replace(/\D/g,''); //remove the non-Numeric
De même, vous pouvez
string.replace(/\W/g,''); //remove the non-alphaNumeric
Dans RegEX, le symbole '\' ferait de la lettre qui la suit un modèle:\w - alphanumeric, et\W - non alpha-numérique majuscule la lettre.
Vous voudrez utiliser la méthode String ' Split () et lui transmettre une expression régulière "\ D +" qui correspondra à au moins un autre nombre.
myString.split("\\D+");
StringBuilder sb = new StringBuilder();
test.chars().mapToObj(i -> (char) i).filter(Character::isDigit).forEach(sb::append);
System.out.println(sb.toString());
Cela fonctionne dans Flex SDK 4.14.0
myString.replace (/ [^ 0-9 && ^.]/g, "");
vous pouvez utiliser une méthode récursive comme ci-dessous:
public static String getAllNumbersFromString(String input) {
if (input == null || input.length() == 0) {
return "";
}
char c = input.charAt(input.length() - 1);
String newinput = input.substring(0, input.length() - 1);
if (c >= '0' && c<= '9') {
return getAllNumbersFromString(newinput) + c;
} else {
return getAllNumbersFromString(newinput);
}
}
Les réponses précédentes effaceront votre point décimal. Si vous voulez sauvegardez votre décima l, vous voudrez peut-être
String str = "My values are : 900.00, 700.00, 650.50";
String[] values = str.split("[^\\d.?\\d]");
// split on wherever they are not digits ( but don't split digits embedded with decimal point )
Manière simple sans utiliser Regex:
public static String getOnlyNumerics(String str) {
if (str == null) {
return null;
}
StringBuffer strBuff = new StringBuffer();
char c;
for (int i = 0; i < str.length() ; i++) {
c = str.charAt(i);
if (Character.isDigit(c)) {
strBuff.append(c);
}
}
return strBuff.toString();
}