我的代码打印将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();
}
}
答案 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("")));