有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java中的数字分隔

我的代码打印将n转换为基数B的结果。我在代码中使用了%。如果两个数字的%给出了一个输出,例如“11”,如何将这些数字分开,使我的输出看起来像“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) 个答案

  1. # 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格式

  2. # 2 楼答案

    为什么不通过Integer.toString(int i, int radix)进行基转换,其中基数只是基的一个奇特单词,然后按照David Findlay的建议使用字符串操作(尽管我可能会使用字符串#连接和字符串#拆分),例如:

    String converted = Integer.toString(n, b);
    String spaceSeparated = (String.join(" ", converted.split("")));
    
  3. # 3 楼答案

    尝试使用while循环:

    int num; // = the int you want to separate
    
    while (num > 0) {
       print( num % 10);
       num = num / 10;
    }