解决此问题时遇到问题:
编写一个结构程序,可以接受两个最多40位的整数,并执行以下操作:
- 将两个数字加在一起并显示结果
- 结果编号应该用逗号分隔。
醇>
所以我能够使用BigInteger
做第1,但是第2部分我遇到了问题。我不知道我应该如何为字符串添加逗号,我使用for
循环来处理分割,但它不起作用。
感谢所有的帮助,我能够弄明白
public static String NewString (String num)
{
String sent = "" ;
int count = 0;
for ( int index = num.length()-1 ; index >= 0 ; index --)
{
count++;
sent = num.charAt(index) + sent;
if(count % 3 == 0 && index != 0)
sent = "," + sent;
}
return sent;
}
答案 0 :(得分:3)
您可以使用
String formattedInteger = NumberFormat.getNumberInstance(Locale.US).format(bigInteger);
或者你可以自己写。这很简单,只需将您的BigInteger
转换为String
,然后向后循环,并且您传递的每个第3个字符都会添加逗号。
答案 1 :(得分:0)
以下代码 -
非常自我解释,希望这会有所帮助:)
package stackoverflow;
import java.math.BigInteger;
/**
* Created by Nick on 11/13/14.
*
* Add two numbers together and display the result
* The result number should be separated by commas.
*/
public class SO_26916958 {
private static BigInteger arg1;
private static BigInteger arg2;
public static void main(String[] args) {
arg1 = new BigInteger (args[0].getBytes());
arg2 = new BigInteger (args[1].getBytes());
BigInteger sum = arg1.add(arg2);
String bigIntegerString = sum.toString();
String output = recursivelyAddComma(bigIntegerString);
System.out.print(bigIntegerString +"\n");
System.out.print(output);
}
private static String recursivelyAddComma (String s) {
int length = s.length();
StringBuilder output = null;
if(length <= 3) {
return s.toString();
}
return recursivelyAddComma(s.substring(0, length - 3)).concat(",").concat(s.substring(length - 3, length));
}
}