2017-02-16 8 views
-2

3桁の数字を数字に分割するプログラムを作りたいと思います。私はコンパイルや実行に問題はありませんが、最終的な出力は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]); 
    } 
} 
+1

を試してみてください。 int(プリミティブ)の配列をceroで初期化しました –

+0

array = https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.htmlを操作するためのヘルプはdocチュートリアルを参照してください – mjhouseman

+2

"私はそうではありませんアレイに精通しているので、私はちょうど異なることを試みている」配列に慣れ親しんだり、暗闇の中を歩いたりしないでください。https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html 'new int [n];'は、あなたが思っていることをしません。この作業では、整数除算とモジュロ演算子を調べることができます。 – Pshemo

答えて

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]); 

OR

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]); 
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] + " "); 
    } 

} 
0

何をやっているが、nの長さの配列を作成しています。デフォルトでは、arrayのすべての要素は0なので、outputには0、0、0が与えられます。まず、入力の前に3の配列長を作成する必要があります。次に、ループで入力を取得し、それらの入力で配列を埋める必要があります。

関連する問題