在java中分隔数字

时间:2016-06-29 22:58:24

标签: java

我的代码打印将n转换为base B的结果。我在代码中使用%。如果两个数字中的%给出例如“11”的输出,那么如何将数字分开以使我的输出看起来像“1 1”

        String s;
        int r;

        if(n < b){
            return n + " ";
        }else{
            s = converting(n/b,b);
            r = (n % b);
        }
        return s + r;
    }

    public static void main(String[] args) {
        Scanner scnr = new Scanner (System.in);
        RecursionMethod num = new RecursionMethod();
        System.out.println("Enter Values: ");
        System.out.print("B: ");
        int first = scnr.nextInt();
        System.out.print("B: ");
        int second = scnr.nextInt();
        System.out.println("Result: " + num.converting(first,second));
        scnr.close();
    }
}

3 个答案:

答案 0 :(得分:1)

一种选择是将其转换为字符串,然后使用字符串函数来完成它。

所以:

int result = num.converting(first,second);
String strResults = String.valueOf(result);
System.out.println("Result: " + strResults.substring(0,0) + " " + strResults.substring(1, 1));

根据您期望的结果类型,您可能需要做出比这更常规的情况才能处理超过2位数。

使用printf格式化也可能有一种方法,但我从来不喜欢printf格式化。

答案 1 :(得分:1)

尝试使用while循环:

int num; // = the int you want to separate

while (num > 0) {
   print( num % 10);
   num = num / 10;
}

答案 2 :(得分:0)

为什么不通过Integer.toString(int i, int radix)进行基本转换,其中radix只是基础的一个奇特的词,然后使用字符串操作,正如David Findlay建议的那样(尽管我可能使用String#join和String#split ),例如:

String converted = Integer.toString(n, b);
String spaceSeparated = (String.join(" ", converted.split("")));