我想制作一个程序,它将取一个三位数字并将其分成数字。编译或运行没问题,但最终输出给出了0,0和0。
我对阵列并不熟悉,所以我只是尝试不同的东西。请让我知道问题是什么,或者我可以做些什么来改进我的代码。
import java.util.Scanner;
public class numToDig{
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.print("enter a three digit number: ");
int n=s.nextInt();
int arr[]=new int[n];
System.out.println("The digits are: " + arr[0] + ", " + arr[1] + ", and " + arr[2]);
}
}
答案 0 :(得分:0)
一种可能性:
@Test
public void testIntTocharArray() {
int num = 123;
char[] nums = ("" + num).toCharArray();
int[] digits = new int[nums.length];
for(int i=0;i<nums.length;i++){
digits[i] = Character.getNumericValue(nums[i]);
System.out.print(digits[i] + " ");
}
}
答案 1 :(得分:0)
您正在做的是创建一个长度为n的数组。默认情况下,数组的所有元素都是0,因此输出会给出0,0,0。首先,您应该在任何输入之前创建一个3的数组长度。然后你应该在循环中获得输入并用这些输入填充数组。
答案 2 :(得分:0)
试试这个
Scanner sc=new Scanner(System.in);
System.out.print("enter a three digit number: ");
String digits = sc.nextLine();
String arr[]=digits.split("");
System.out.println("The digits are: " + arr[0] + ", " + arr[1] + ", and " + arr[2]);
或强>
Scanner sc=new Scanner(System.in);
System.out.print("enter a three digit number: ");
String digits = sc.nextLine();
char arr[]=digits.toCharArray();
System.out.println("The digits are: " + arr[0] + ", " + arr[1] + ", and " + arr[2]);