Java中数字串加逗号的方法
Method for adding commas to digit string in Java
作业是从右往左看,每三位数字后面加一个。所以数字 1000000 应该是 1,000,000 等等
我比较清楚如何解决这个问题,但我不知道为什么我没有输出。也许我犯了一些我不知道的错误......
我认为我理解字符串是不可变的概念,因此它们不能就地更改,当您想将某些内容更改为字符串时,您必须创建新的字符串对象。但我不明白这怎么可能:
`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;
}
}
我建议删除 counter
并通过进行小的更改仅使用循环变量:
public String addCommasToNumericString(String digits) {
String result = "";
for (int i=1; i <= digits.length(); ++i) {
char ch = digits.charAt(digits.length() - i);
if (i % 3 == 1 && i > 1) {
result = "," + result;
}
result = ch + result;
}
return result;
}
addCommasToNumericString("123"); // 123
addCommasToNumericString("12345"); // 12,345
addCommasToNumericString("1234567"); // 1,234,567
将读取的行转换为Integer
,然后将其格式化为String
String digits = readLine("Enter a numeric string: ");
Integer myInt = new Integer(digits);
String output = NumberFormat.getNumberInstance(Locale.US).format(myInt.value());
作业是从右往左看,每三位数字后面加一个。所以数字 1000000 应该是 1,000,000 等等
我比较清楚如何解决这个问题,但我不知道为什么我没有输出。也许我犯了一些我不知道的错误......
我认为我理解字符串是不可变的概念,因此它们不能就地更改,当您想将某些内容更改为字符串时,您必须创建新的字符串对象。但我不明白这怎么可能:
`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;
}
}
我建议删除 counter
并通过进行小的更改仅使用循环变量:
public String addCommasToNumericString(String digits) {
String result = "";
for (int i=1; i <= digits.length(); ++i) {
char ch = digits.charAt(digits.length() - i);
if (i % 3 == 1 && i > 1) {
result = "," + result;
}
result = ch + result;
}
return result;
}
addCommasToNumericString("123"); // 123
addCommasToNumericString("12345"); // 12,345
addCommasToNumericString("1234567"); // 1,234,567
将读取的行转换为Integer
,然后将其格式化为String
String digits = readLine("Enter a numeric string: ");
Integer myInt = new Integer(digits);
String output = NumberFormat.getNumberInstance(Locale.US).format(myInt.value());