从字符串中删除Dollar和逗号

时间:2013-12-03 12:32:46

标签: java regex str-replace

如何从同一个字符串中删除美元符号($)和所有逗号(,)?避免正则表达式会更好吗?

String liveprice = "$123,456.78";

11 个答案:

答案 0 :(得分:23)

喜欢这个

NumberFormat format = NumberFormat.getCurrencyInstance();
Number number = format.parse("$123,456.78");
System.out.println(number.toString());

<强>输出

123456.78

答案 1 :(得分:15)

尝试,

String liveprice = "$123,456.78";
String newStr = liveprice.replaceAll("[$,]", "");

replaceAll使用正则表达式来避免使用正则表达式而不是使用连续replace方法。

 String liveprice = "$1,23,456.78";
 String newStr = liveprice.replace("$", "").replace(",", "");

答案 2 :(得分:1)

只需使用Replace代替

String liveprice = "$123,456.78";
String output = liveprice.replace("$", "");
output = output .replace(",", "");

答案 3 :(得分:1)

没有正则表达式,你可以试试这个:

String output = "$123,456.78".replace("$", "").replace(",", "");

答案 4 :(得分:1)

在我的情况下,@ Prabhakaran的答案无效,有人可以尝试。

String salary = employee.getEmpSalary().replaceAll("[^\\d.]", "");
Float empSalary = Float.parseFloat(salary);

答案 5 :(得分:0)

以下是更多信息Oracle JavaDocs

liveprice = liveprice.replace("X", "");

答案 6 :(得分:0)

这会有效吗?

String liveprice = "$123,456.78";
String newStr = liveprice.replace("$", "").replace(",","");

输出:123456.78

Live Demo

更好的一个:

String liveprice = "$123,456.78";
String newStr = liveprice.replaceAll("[$,]", "")

Live Demo

答案 7 :(得分:0)

真正替换你需要的吗?

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);
    }
  }
}

这适用于任何装饰数字。

答案 8 :(得分:0)

使用瑞典克朗货币的示例

字符串x =&#34; 19.823.567,10 kr&#34 ;;

        x=x.replace(".","");
        x=x.replaceAll("\\s+","");
        x=x.replace(",", ".");
        x=x.replaceAll("[^0-9 , .]", "");

的System.out.println(X);

将给出输出 - &gt; 19823567.10(现在可以用于任何计算)

答案 9 :(得分:0)

import java.text.NumberFormat

def currencyAmount = 9876543.21 //Default is BigDecimal
def currencyFormatter = NumberFormat.getInstance( Locale.US )

assert currencyFormatter.format( currencyAmount ) == "9,876,543.21"

如果不需要货币,则不需要getCurrencyInstance()

答案 10 :(得分:-1)

我认为你可以使用正则表达式。例如:

"19.823.567,10 kr".replace(/\D/g, '')