2015-11-11 53 views
0

我有一個簡單的文本文件:簡單的Java文本文件不解析正確

type = "hello" 
number = 66 

type = "hey" 
number = 77 

我基本上只是檢查,看看是否字符串「類型」,在文本文件中發現,如果是的,我也想獲得值「你好」和「嘿」即類型。但是,我的程序完全不起作用,在檢查文件中是否有「type」時,它總是打印否。

public static void main(String[] args) { 
    if(args.length == 1) 
     parseText(argv[0]); // call with textfile name 
} 
public void parseText(String inPath) { 
     try { 
     Scanner s = new Scanner(inPath); 
     while(s.hasNextLine()) { 
      if("type".equals(s.nextLine().trim())) 
       System.out.println("Yes"); 
      else { 
       System.out.println("no"); 
      } 

     } 
     }catch (Exception e) { 
      System.out.println("\nFILE NOT FOUND"); 
     } 

} 

任何幫助將不勝感激。

+0

,你需要打開一個用'新的掃描儀(新文件(INPATH));'在最低限度。就目前而言,您只是掃描在命令行中傳入的字符串。 – JRD

回答

2
if("type".equals(s.nextLine().trim())) 

你真的想從文件中讀取數據行到一個字符串,所以你可以做字符串處理。

你要知道,如果符合「類型」開始:

String line = s.nextLine() 

if (line.startsWith("type")) 
{ 
    String value = line.substring(8); 
    System.out.println(value); 
} 
+0

好的,但我仍然對如何獲得值「你好」或「嘿」感到困惑? – user3739406

+0

啊,我明白了它現在的工作原理,謝謝。 – user3739406

2

檢查是否符合「類型」(不等於「類型」)開始。

if("type".equals(s.nextLine().trim())) 

應該是如果你想從一個文件中讀取類似

String line = s.nextLine().trim(); 
if (line.startsWith("type"))