2014-11-05 1 views
2

나는 몇 시간 동안 해결책을 찾으려고 노력했다.Java에서 일련의 정수에 대한 배열을 만드시겠습니까?

내 프로그램에서 사용자에게 정수 목록 (예 : 5 2 5 6 6 1)을 입력하도록 요청합니다. 그럼 배열을 만들고 각각의 배열 인덱스에 각 정수를 연속적으로 저장하고 싶습니다. 여기

난에 문제가있어 내 프로그램의 일부이다 (이 프로그램은 나중에하는 방법을 통해 계산을 수행하는 것을 의미했지만, 나는 그것을 포함하지 않았다) : 당신이 할 수

import java.util.Scanner; 
public class Assignment627 { 

public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 

    int x = 0; 
    int[] list1Array = new int[1]; 

    System.out.println("Enter list1: "); 
    while (input.hasNext()){ 
     list1Array[x] = input.nextInt(); 
     x++; 
    } 

보십시오, "list1Array"배열을 인스턴스화하고 있지만 문제는 사용자가 입력 할 정수의 수를 알 수 없다는 것입니다. 얼마나 많은 정수가 입력되었는지 알 수있는 방법이 있다면 ... 어떤 도움이라도 대단히 감사하겠습니다! 감사합니다, 세바스찬

+3

사용을'ArrayList를 '대신 int [] – Jens

+0

int [] list1Array = new int [1];'가 작동하지 않습니다. 'List list1Array = new List ();'을 사용하십시오. 인덱스를 기반으로 데이터를 추가 할 수있는 빈 목록을 만듭니다. Java의 List에 대해 읽어보십시오. – ha9u63ar

+2

@hagubear 당신이 의미하는'List list = new ArrayList ();', 당신의 대답은 ** C# ** – EpicPandaForce

답변

1
public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     System.out.println("Enter elemnt size "); 
     int size = input.nextInt(); 

     int x = 0; 
     int[] list1Array = new int[size]; 

     for (int y = 0 ; y < size ; y++) { 
      System.out.println("Enter number"); 
      list1Array[x] = input.nextInt(); 
      x++; 
     } 

     System.out.println(Arrays.toString(list1Array)); 
    } 

출력

Enter elemnt size 
4 
Enter number 
2 
Enter number 
3 
Enter number 
4 
Enter number 
2 
[2, 3, 4, 2] 
1

사용 List, 귀하의 경우 ArrayList은 잘 될 것입니다 :

List<Integer> list1Array = new ArrayList(); 

while (input.hasNext()){ 
    list1Array.add(input.nextInt()); 
    x++; 
} 
5
import java.util.Scanner; 
public class Assignment627 { 

    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     //int[] list1Array = new int[1]; 
     List<Integer> list1Array = new ArrayList<>(); 

     System.out.println("Enter list1: "); 
     while (input.hasNext()){ 
      list1Array.add(input.nextInt()); 
     } 
    } 

} 

ArrayList,는 A처럼 미리 정의 된 크기가 없으며 크기가 동적으로 변경되는 정확히 당신이 찾고있는 것. 크기를 알 수 있습니다. list1Array.size();

최종 결과가 배열 인 것으로 주장하면 나중에 toArray() method of ArrayList을 호출 할 수 있습니다. This post이 도움이 될 것입니다.

1

입력을 문자열로 취한 다음 string.split ("");을 사용해야합니다. 각 숫자를 나타내는 String 배열을 가져옵니다. 문자열로 배열을 얻는 것은 문자열 토큰 화로 할 수 있습니다.

UPDATE

하지만 당신은

+0

나는 당신의 대답을 좋아하지만 조금 편집했습니다. 그리고 투표하십시오. :) –

2

당신이 정말로 Arrays를 사용하려는 경우는, 다음과 같이 그것을 할 수 번호에 대한 구분자로 다른 문자를 넣어하지 않도록주의해야합니다

import java.util.Scanner; 

public class Assignment627 { 

    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     int x = 0; 
     int[] list1Array = new int[1]; 

     System.out.println("Enter list1: "); 
     while (input.hasNext()) { 
      list1Array[x] = input.nextInt(); 
      x++; 
      int[] temp = new int[list1Array.length + 1]; 

      for (int i = 0; i < list1Array.length; i++) { 
       temp[i] = list1Array[i]; 
      } 

      list1Array = temp; 
     } 
    } 
} 
관련 문제