Comment pouvons-nous supprimer le signe dollar ($) et toutes les virgules (,) de la même chaîne? Serait-il préférable d'éviter les regex?
String liveprice = "$123,456.78";
fait comme ça
NumberFormat format = NumberFormat.getCurrencyInstance();
Number number = format.parse("$123,456.78");
System.out.println(number.toString());
sortie
123456.78
Essayer,
String liveprice = "$123,456.78";
String newStr = liveprice.replaceAll("[$,]", "");
replaceAll
utilise regex, pour éviter les regex, essayez avec la méthode replace
consécutive.
String liveprice = "$1,23,456.78";
String newStr = liveprice.replace("$", "").replace(",", "");
Sans regex, vous pouvez essayer ceci:
String output = "$123,456.78".replace("$", "").replace(",", "");
Il suffit d'utiliser Replace
à la place
String liveprice = "$123,456.78";
String output = liveprice.replace("$", "");
output = output .replace(",", "");
Voici plus d'informations Oracle JavaDocs :
liveprice = liveprice.replace("X", "");
Est-ce que ça marche?
String liveprice = "$123,456.78";
String newStr = liveprice.replace("$", "").replace(",","");
Sortie: 123456.78
Le meilleur:
String liveprice = "$123,456.78";
String newStr = liveprice.replaceAll("[$,]", "")
Exemple en devise suédoise
Chaîne x = "19.823.567,10 kr";
x=x.replace(".","");
x=x.replaceAll("\\s+","");
x=x.replace(",", ".");
x=x.replaceAll("[^0-9 , .]", "");
System.out.println (x);
Donnera le résultat -> 19823567.10 (qui peut maintenant être utilisé pour tout calcul)
Un remplacement est-il vraiment ce dont vous avez besoin?
public void test() {
String s = "$123,456.78";
StringBuilder t = new StringBuilder();
for ( int i = 0; i < s.length(); i++ ) {
char ch = s.charAt(i);
if ( Character.isDigit(ch)) {
t.append(ch);
}
}
}
Cela fonctionnera pour n'importe quel numéro décoré.