嗨我正在尋求獲得一些幫助,跳過null行,我已經搜索了答案,但我無法找到任何。這是我正在嘗試使用的代碼:如何跳過java中的空行?
BufferedReader in = new BufferedReader(new FileReader(newest));
String line = "";
while (true) {
if ((line = in.readLine()) == null) {
嗨我正在尋求獲得一些幫助,跳過null行,我已經搜索了答案,但我無法找到任何。這是我正在嘗試使用的代碼:如何跳過java中的空行?
BufferedReader in = new BufferedReader(new FileReader(newest));
String line = "";
while (true) {
if ((line = in.readLine()) == null) {
行不會爲空,它們可能只是空的。我會做的是檢查它是否是空的:
if ((line = in.readLine()) != null) {
line = line.trim();
if (line.isEmpty()) {
}
}
最好先檢查null,然後調用行上的trim()來移除空格,然後調用'isEmpty()'來檢查是否沒有文本。 –
我修好了,希望現在好了... –
不應該你的第一條if語句而不是?如果返回null,則已到達流的末尾。 – JamesB
我希望的代碼看起來像這樣:
String line;
while ((line=in.readLine())!=null) {
if (!line.isEmpty()) {
// do stuff
}
}
一般情況下我trim
前檢查每一行,如果它是空的,但是你說你想排除「一條空白的行,沒有空格」,這意味着你想要包括只是空間的行。
如果做想跳過都是空白行,你可以這樣做:
String line;
while ((line=in.readLine())!=null) {
if (!line.trim().isEmpty()) {
// do stuff
}
}
的while
條件的一點是,BufferedReader
將返回null
當輸入完成後,使這應該觸發循環的結束。
這更像是它 – JamesB
從這個流中讀取數據時,只會在數據流結尾處遇到null(在這種情況下爲文件)。如果您正在查找空白/空白字符串,則該測試位於循環內(如下所示)。
請注意,String.trim()不會修剪對象本身,它會返回修剪後的String。通常應該使用Equals方法來測試Object(如String)是否相等。
BufferedReader in = new BufferedReader(new FileReader(newest));
String line = "";
//Line below keeps looping while the reader return a valid line of text.
//If the end of stream (file in this case) has been reached, you'll get null.
while ((line=in.readLine())!=null) {
//line below tests for empty line
if(line.trim().equals(""){
}
}
你是什麼意思的「空」行?一個空行''「'或者包含單詞'」null「'的行或者readLine返回'null'的行? – EWit
空行且沒有空行的行 – Austin
我可能會犯錯,但'readLine'只在流結束時返回'null'。在這種情況下,你不能簡單地「跳過」它,因爲沒有進一步的輸入。 – EWit