2014-04-22 3 views
0

아래 코드에서 볼 수 있듯이 문자열에 -문자열이있는 텍스트 파일이 있습니다. 텍스트 파일에이 문자열이 들어 있으면 텍스트 파일에서 읽은 다음 다시 인쇄해야합니다. 문제는 내 코드가 인쇄하지 않는 이유입니다.스캐너를 사용하여 텍스트 파일에서 문자열을 읽고 인쇄하십시오.

감사합니다. 감사드립니다.

public class Main { 

    public static void main(String[] args) throws FileNotFoundException { 

     File file = new File("C:/Users/Anton/Pictures/1 x geotransform0.5m shading.txt"); 

     Scanner scan = new Scanner(file); 

      while(scan.hasNext()){ 
       String str = scan.next(); 

       if(str == "!- =========== ALL OBJECTS IN CLASS: FENESTRATIONSURFACE:DETAILED ==========="){ 
        System.out.print(str); 
       } 
      } 
      scan.close(); 
     } 
} 
+0

디버거를 사용할 때,'if' stat에 도달하면'str'은 무엇입니까? 약속? –

+5

대신 String 객체의 equals() 메서드를 사용하십시오. – DmitryKanunnikoff

+0

이것은'str =='으로 잘못 보입니다. [Java에서 문자열을 어떻게 비교합니까?] (http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java)를보십시오. 또한'next()'는 한 단어 만 반환합니다. 아마도'nextLine()'을 사용해야 할 것입니다. – Pshemo

답변

1

사용의 스캐너는 다음 .. 그냥 단어가 전체 라인을 읽는 대신 꽵을 사용할 수 있습니다

Scanner scan = new Scanner(file); 
      String str1 = scan.nextLine(); 

       if(str1.equals("!- =========== ALL OBJECTS IN CLASS: FENESTRATIONSURFACE:DETAILED ===========")) 
        System.out.println(str1); 
       scan.close(); 
+0

고마워요. 해결했습니다. 저는 Java에 익숙하지 않았습니다. 그래서이 모든 것을 배우고 환호했습니다. –

0

사용이

if(str.equals("!- =========== ALL OBJECTS IN CLASS: FENESTRATIONSURFACE:DETAILED ===========")){ 
      System.out.print(str); 
     } 

대신 코드 아래

if(str == "!- =========== ALL OBJECTS IN CLASS: FENESTRATIONSURFACE:DETAILED ==========="){ 
      System.out.print(str); 
     } 
관련 문제