带逗号的数字字符串

时间:2014-11-13 19:36:00

标签: java

解决此问题时遇到问题:

  

编写一个结构程序,可以接受两个最多40位的整数,并执行以下操作:

     
      
  1. 将两个数字加在一起并显示结果
  2.   
  3. 结果编号应该用逗号分隔。
  4.   

所以我能够使用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;
   }

2 个答案:

答案 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));

    }

}