如何使用java将字符串(1,234)转换为数字(1234)[关闭]

Posted

技术标签:

【中文标题】如何使用java将字符串(1,234)转换为数字(1234)[关闭]【英文标题】:How can I convert a string(1,234) into a number(1234) using java [closed] 【发布时间】:2013-10-10 09:55:15 【问题描述】:

如何转换字符串

 (1,234) 

变成一个数字

(1234) 

使用java?

【问题讨论】:

谷歌关闭了吗?伙计们,任何人都可以绕过一只死猫而不回答这个问题吗? 将字符 ',' 替换为 ''。请参阅字符串 API 文档。 @SubirKumarSao 你不知道哪个 Locale OP 在...有些语言环境中这是一个有效的整数,而有些语言环境认为这是一个分数。 . System.out.println("(1234)"); :) 这就是你要找的***.com/questions/11973383/…? 【参考方案1】:

使用DecimalFormat

DecimalFormat  format = new DecimalFormat  ("#,###");
Number aNumber = format.parse("1,234");
System.out.println(aNumber.intValue());

【讨论】:

如果您要添加一个关于语言环境如何影响小数点的概念,那将是一个很好的答案。【参考方案2】:

您可以为此使用NumberFormat

   String number = "1,234";
   NumberFormat numberFormat = NumberFormat.getInstance();
   int i = numberFormat.parse(number).intValue();

【讨论】:

【参考方案3】:

试试String.repaceAll()

String value = "1,234";
System.out.println(Integer.parseInt(value.replaceAll(",", "")));

【讨论】:

但我直接将其转换为整数。为什么我可以再次分配替换的值 我不明白所有的反对票。此代码示例是正确的。但是,您可以在 println 语句中删除 ""+ @DuncanJones 我没有投反对票,该评论是针对这篇文章的先前编辑的。现在看来是正确的 您编辑了您的答案。检查你的第一个.. @DuncanJones 现在也再次投反对票,我的意思是在编辑后【参考方案4】:

字符串是不可变的,所以当你做replaceAll时,你需要将对象重新分配给字符串引用,

String str = new String("1,234");
str = str.replaceAll(",", "");
System.out.println(Integer.parseInt(str));

测试时效果很好。

【讨论】:

【参考方案5】:
String str = new String("1,234");
    String str1=str.replace(",", "");
    Integer.parseInt(str1);

试试上面的代码

输出 第1234章

【讨论】:

@downvoter 如果你没有得到输出那么请显示截图 所有学分都归问题所有【参考方案6】:

如果速度是一个主要问题,您可能会很快发现这样的事情。它击败了this 帖子中的所有人。

int value(String s) 
  // Start at zero so first * 10 has no effect.
  int v = 0;
  // Work from the end of the string backwards.
  for ( int i = s.length() - 1; i >= 0; i-- ) 
    char c = s.charAt(i);
    // Ignore non-digits.
    if ( Character.isDigit(c)) 
      // Mul curent by 10 and add digit value.
      v = (v * 10) + (c - '0');
    
  
  return v;

【讨论】:

这似乎是实现目标的一种相当手动的方式。有什么理由比更简洁的答案更受欢迎? @DuncanJones - 如果速度是一个问题,它可能比所有其他人都快。对一两次反对票感到满意……如果速度很关键,这只是我会采取的一条路线。添加了警告。 FWIW,我自己并没有对你投反对票 - 答案看起来是正确的。我只是对可能的好处感兴趣。出于某种原因,有些人宁愿引发快乐的投票者传播这个问题。 这只是重新发明***,如果输入字符串中的整数格式发生变化,则需要进行修改。 OP 并不关心速度。

以上是关于如何使用java将字符串(1,234)转换为数字(1234)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用Stream将逗号分隔的字符串转换为Array

java如何将数字转换为英文

java如何将接收到的数字自动转换为枚举

将 int[] 转换为逗号分隔的字符串

如何将字符串转换成javaBean

在java中如何将全为数字的字符串转化为byte数组?