2014-11-17 2 views
-4

변수가있는 Java 문자열 배열을 채우려고합니다. 변수에는 텍스트 파일에서 읽는 값이 들어 있습니다. 새로운 값이 배열에 저장 될 때마다 현재 값이 새로운 값으로 대체됩니다.변수가있는 Java 배열 채우기

아래 코드는 지금까지 시도한 코드입니다.

int n = 0; 

String var1 = value; 

String array[] = {var1}; 

String [] array = new String[n]; 

    for (int i =0; i < n; i++) { 

    array[n++] = value; 

    } 
+0

'value'는 어디에 정의되어 있습니까? 나는 당신이 우리에게 보여준 코드가 다른 값을'value'로 읽는 루프 내부에 있다고 가정합니다. 또한,'array'를 두 번 정의 했으므로 코드 예제는 결코 컴파일 될 수 없습니다. 실제 코드를 알려주십시오. –

답변

2

Java는 고정 크기의 배열 만 가지고 있습니다. 동적으로 성장 "배열"List 실현됩니다


List<String> array = new ArrayList<>(); 
for (int i = 0; i < 42; ++i) { 
    String s = "" + i; 
    array.add(s); 
} 

for (String t : array) { 
    System.out.println(t); 
} 

String seven = array.get(7); 
int n = array.size(); 
if (array.isEmpty()) { ... } 

// In Java 8: 
array.stream().sorted().forEach(System.out::println); 
이 성가신 것 (고정 크기) 배열을 사용 :

모든 여기에
String[] array = new String[]; 
String[] otherVar = array; 
for (int i = 0; i < 42; ++i) { 
    String s = "" + i; 
    array = Arrays.copyOf(array, i + 1); 
    array[i] = s; 
} 

는 새로운 배열이 생성 단계의 내용 이전 배열이 복사되었습니다. 또한 otherVar은 초기 빈 배열을 유지합니다.

String[] aString a[]과 같습니다. 후자는 C/C++과의 호환성만을위한 것이며 읽기 쉽지 않습니다.

0

문자열을 무기한 추가합니다. 파일에서 모든 데이터를 읽을 때 설정해야합니다 isFileNotEnded = false

boolean isFileNotEnded = true; 
    List<String> array = new ArrayList<>; 
    while (isFileNotEnded) { 
     array.add("hello"); 
     //stop here the infinite loop 
    } 
+0

얼마나 많은 데이터가 텍스트 파일에 있는지 알 수 없습니다. – percy3872

+0

배열을 사용할 수 없지만 ArrayList를 사용해야합니다. – Accollativo