2016-11-15 1 views
0

내 코드의 목표는 사용자에게 입력을 요청하는 것이며 내 코드는 내 CSV 파일을 검색하여 올바른 행과 열의 데이터를 출력합니다. 그러나 그 특정 셀을 추출하여 내용을 편집 할 수있는 방법에 관해서는 상당히 혼란 스럽습니다. CSV 파일에서 특정 행의 내용을 어떻게 출력합니까?

내가 bananabanana에 대한 내 코드 검색을 검색 한 다음 변수에 banana,store 포함됩니다 특정 행 그래서 난 다음 위치를 편집 할 수 있고, 올바른 셀에 다시 넣어 출력 말한다. 여기

내가이 검색의 특정 텍스트의 행과 열을 찾기위한 코드입니다 :

try{ 

     String strSearch = searchSerialField.getText(); 

     CSVReader reader = new CSVReader(new FileReader("test.txt"), ','); 
     List<String[]> myEntries = reader.readAll(); 
     reader.close(); 

     for (int row = 0; row < myEntries.size(); row++) 
     { 
      for (int column = 0; column < myEntries.get(row).length; column++) 
      { 
       if (myEntries.get(row)[column].trim().equalsIgnoreCase(strSearch)) 
       { 
        System.out.println("Found - Your item is on row: " + row + ", column: " + column); 
       } 
      } 
     } 

//I now need to output the contents of the row into something so I can edit it 

내가 지금 너무 나는 다음 위치를 편집 할 수있는 일에 행을 추출 할 필요가있어,하지만 난 내가 이걸 어떻게 접근해야하는지에 관해서는 우둔한가?

누구든지 내가 따라야하는 팁이나 방법이 있다면 크게 감사하겠습니다.

감사합니다.

+0

수정 사항의 출처는 어디입니까? 세포를 바꾸고 싶다고 말하면서 어떻게 바꾸고 싶은지 모르겠다. –

+0

2D 배열에서 파일을 저장할 수 있습니다. 2D 배열에서 인덱스 – Saravana

+0

@DrewWills를 사용하여 위치를 가져올 수 있습니다. 설명에서 지정된대로 위치를 변경하고 싶습니다. 다른 양식이 열리므로 위치를 변경할 수는 있지만이 특정 질문에 대해서는 행을 추출하여 편집 할 수있는 방법을 알고 싶습니다. – juiceb0xk

답변

0

Java String은 변경할 수 없습니다. 당신은 그들을 바꿀 수 없다. 당신은 새로운 것을 만들어야한다. List과 배열은 변경할 수 있습니다 (그렇지 않은 경우 제외). 작업이 완료되면

당신이 할 수있는 ...

for (int row = 0; row < myEntries.size(); row++) 
{ 
    for (int column = 0; column < myEntries.get(row).length; column++) 
    { 
     if (myEntries.get(row)[column].trim().equalsIgnoreCase(strSearch)) 
     { 
      System.out.println("Found - Your item is on row: " + row + ", column: " + column); 
      String myNewString = "something else"; 
      myEntries.get(row)[column] = myNewString; // Replaces the String at this array index 
     } 
    } 
} 

// Now write the contents to a CSVWriter variable called 'myCSVWriter' 
for (String[] entry : myEntries) { 
    myCSVWriter.writeNext(entry); 
} 
myCSVWriter.close(); 

// Actually -- instead of that -- an easier way would be... 
myCSVWriter.writeAll(myEntries); 
myCSVWriter.close(); 

, 당신은 파일의 내용을 덮어 myEntries 모음을 사용할 수 있습니다.

+0

흠, 도움을 주셔서 감사합니다.하지만 파일에 다시 쓰는 방법에 조금 얽혀 있습니다. CSVWriter 변수를 선언했지만 내용을 파일에 다시 쓰려면 어떻게해야합니까? – juiceb0xk

+0

적절히 구성된'CSVWriter '를 가지고 있다면,'write *'메소드 중 하나 (하나 이상)를 호출 할 수 있고, 끝나면'close()'를 호출 할 수 있습니다. –

+0

'writer.writeNext (myEntries)'- List 을 String []으로 변환 할 수 없습니다. 'writer.writeNext (myEntries.toArray (new String [myEntries.size()]);) 시도했지만 오류가 발생했습니다. 이 오류를 성공적으로 해결하려면 어떻게해야합니까? – juiceb0xk

관련 문제