【发布时间】:2016-12-15 10:25:39
【问题描述】:
我有一个字符串表示计数“1,125,854”。
我想检查每千位小数后是否存在“,”。
例如125,854 和 1,125,854
我写了以下代码
import java.text.DecimalFormat;
import java.text.Format;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
public class CountComma {
public static void main(String[] args) {
String str = "1,125,854";
int count = 0;
String revStr = new StringBuilder(str).reverse().toString();
System.out.println("Reverse String: " + revStr);
List<Integer> format = new ArrayList<Integer>();
for (char ch : revStr.toCharArray()) {
System.out.println(ch);
if (ch == ',') {
count = count + revStr.indexOf(ch);
format.add(count);
}
}
System.out.println("Count: " + count);
System.out.println(format.toString());
}
}
This code gives output :
Reverse String: 458,521,1
4
5
8
,
5
2
1
,
1
Count: 6
[3, 6]
有人可以建议更好的方法吗?
谢谢
【问题讨论】:
-
你有什么问题?你的代码是在做你想做的事吗?
-
更好的方法是编写一个根据输入是否有效返回布尔值 true/false 的方法。现在,你在检查什么?你在打印什么?
-
为什么要这么做?是否想将字符串解析为 int 值?如果是这样,请参阅 - stackoverflow.com/questions/11973383/…
-
感谢大家的建议。我的问题是:“检查数字字符串是否具有正确的逗号格式”它在应用正则表达式后解决。("\\d{1,3}(,\\d{3})*")
标签: java