2014-07-16 1 views
0

분리 문자가 맞았에 따라 경우에 분리 문자 스위치 스캐너를 만들려면 : 0, 매트이 너무 2, 존내가 톰 켈리, 제인, 같은 물건이있는 텍스트 파일이

을 place // if (******) 나는 Tom, Kelly, Jon을 위해 list.add를 사용하고 싶습니다. Jane, Matt의 경우 0 대신 파일에서 스캔 된 int를 사용하고 싶습니다. Delimiter가 올바른 선택인지 확신 할 수 없으며 거기에있는 스캐너 두 개 모두가 올바르지 않다는 것을 알고 있습니다. 저를 올바른 방향으로 가르쳐주십시오.

Scanner diskScanner = new Scanner(new File("Names.txt")); 
diskScanner.useDelimiter(","); 

while (diskScanner.hasNext()) 
    { 
    String n = diskScanner.next(); 

    if(n.contains(":")) 
     { 
     int i = n.indexOf(":"); 
     list.add(new Student(Integer.parseInt(n.substring(i+1)), n.substring(0,i))); 
     } 
    else 
     list.add(new Student(0, n)); 
    } 

안된 때문에 사용에주의 :

public static Picker fromFile() throws FileNotFoundException 
{ 
    ArrayList<Student> list = new ArrayList<Student>(); 
    Scanner diskScanner = new Scanner(new File("Names.txt")); 
    diskScanner.useDelimiter(", |:"); 

    while (diskScanner.hasNext()) { 

     //if(******) 
     list.add(new Student(0, diskScanner.next()));// or list.add(new Student(diskScanner.next(), diskScanner.next())) 
    } 
    list = Order.arrange(list); 

    Picker pick = new Picker(list); 
    return pick;  

답변

0

그냥과 같이 해. 지나치게 우아한 해결책을 찾아 자주 여행 할 수 있습니다. 쉼표 사이의 모든 문자열을 가져온 다음 추가 구문 분석을 수행하십시오.

+0

이것은 실제로 작동하는 것처럼 보였지만 (int) n.substring (i + 1)을 좋아하지 않습니다. 그것은 호환되지 않는 타입의 에러를 던진다 : java.lang.Srring은 int로 변환 될 수 없다. 드로잉 보드로 돌아갑니다. – Chad

+0

해결책은 https://stackoverflow.com/questions/5585779/how-to-convert-string-to-int-in-java에서 발견되었으며 int foo = Integer.parseInt ("1234")였습니다. – Chad

+0

@Chad 예, 죄송합니다. Java로 코딩 한 지 오래되었습니다. 내 대답을 편집했습니다. 그것이 만족 스럽다고 느끼면 받아 들일 수있는 것으로 표시해 주시면 고맙겠습니다. – Azar

관련 문제