我想在java中創建一個預處理器,它將在源代碼中讀取它。我試着將代碼全部讀到一個字符串中。Java:文件閱讀器,字符串分隔符分隔符幫助
問題:如何將< < < >>>中間的字符串添加到它自己的某種數組列表中。
public class processLines {
public void pLine (String FileName)throws IOException{
Scanner scanner = null;
try{
scanner = new Scanner(new BufferedReader(new FileReader(FileName)));
while (scanner.hasNext()) {
String Line = "";
String LineB = "";
String LineC = "";
ArrayList<String> inside = new ArrayList<String>();
Line = Line + scanner.next()+ " ";
System.out.println("outside token: "+ Line);
StringTokenizer token = new StringTokenizer(Line);
while(token.hasMoreTokens()&& token.nextToken() != null){
LineB = Line;
if(LineB.contains("<<<")){
if(!LineB.contains(">>>")){
LineC = LineC + scanner.next()+ " ";
inside.add(LineC);
System.out.println("LineC: " + LineC);
System.out.print(inside);
}
if(scanner.next(">>>") != null){
Line = scanner.next();
System.out.println("Line INside:" + Line);
}
}
}
}
}
finally {
if (scanner != null) {
scanner.close();
}
}
}
}
文本文件源代碼包含 「莫< < <莫拉里捲毛>>>拉里」 都在同一行。如果只有一個名字在< < < >>>中,但是當我添加更多時,此代碼有效。外部令牌:
發生錯誤消息沫
外部令牌:< < < LineC:沫 [Mo]的異常在線程 「主」 java.util.InputMismatchException 在java.util.Scanner中.throwFor(未知來源) 在java.util.Scanner.next(未知來源) 在java.util.Scanner.next(未知來源) 在processLines.pLine(processLines.java:26) 在proProcess.main( proProcess.java:14)