作业是在从右到左的每三个数字后面加一个数字。所以数字1000000应该是1000000等等。
我对如何解决这个问题有比较好的想法,但我不知道为什么我得不到输出。也许我犯了一些我不知道的错误或者什么。。。
我认为我理解字符串是不可变的,所以它们不能就地更改,当您想将某些内容更改为字符串时,必须创建新的字符串对象。但我不明白这怎么可能:
`result = ch + result;`
还有这个 result = "," + result;
我哪里不对?
import acm.program.*;
import acm.util.*;
public class AddCommasToNumericString extends ConsoleProgram{
public void run(){
while(true){
String digits = readLine("Enter a numeric string: ");
if (digits.length() == 0) break;
println(addCommasToNumericString(digits));
}
}
public String addCommasToNumericString(String digits){
String result = "";
int counter = 0;
for (int i = digits.length()-1; i <= 0 ; i--){
char ch = digits.charAt(i);
result = ch + result;
counter++;
if (counter % 3 == 0){
result = "," + result;
}
}
return result;
}
}
2条答案
按热度按时间snz8szmq1#
我建议取消
counter
只使用循环变量,只做一个小的改变:dz6r00yl2#
将读取行转换为
Integer
,然后将其格式化为String
```String digits = readLine("Enter a numeric string: ");
Integer myInt = new Integer(digits);
String output = NumberFormat.getNumberInstance(Locale.US).format(myInt.value());