我正在構建一個簡單的程序,似乎遇到了一個奇怪的問題,對我來說,沒有任何意義。該程序需要一個文本文件並逐行解析。然後,根據該行的特徵執行三種操作之一:無法更改變量,而橫向循環
如果該行包含內容,則將其複製到在for循環外聲明的變量 如果行以特定的分隔字符開頭,請將活動行到for循環外部聲明的變量 如果該行爲空,請將其添加到我創建的Set中,並將該變量設置爲空白。
但是,它不會在發生第二個條件時附加字符串。在調試時,它看起來像if條件觸發器,但該塊內沒有任何內容似乎執行。嘗試刪除不需要的字符(在調試模式下觸發此條件的所有字符串都顯示爲\ t--,並將它們附加到正在構建的當前字符串似乎被忽略。下面是我用來試圖說明更好的代碼。使用過濾器和正則表達式
var activeTextLine:String = "";
for(line <- Source.fromFile(fileName).getLines()) {
if (line.isEmpty() == false) {
if (line.startsWith("\t") == true) {
var temp:String = line;
temp.replace("\t--", "");
activeTextLine.concat(temp);
} else {
activeTextLine = line.stripLineEnd;
}
}
if (line.isEmpty() == true) {
textLinesSet.add(activeTextLine);
activeTextLine = "";
}
}
也嘗試已經證明無果而終解析出不需要的人物,也不是使用concating字符串+運營商。我幾乎想,行者存儲的有效行是不可改變的,因此我根本無法修改它的內容,但是一直沒有找到任何可以說這種或那種方式的東西。
這麼長的故事,我知道我做錯了什麼....我是就在一個地方至於什麼。