簡體   English   中英

在輸入文件上使用String.split

[英]Using String.split on input file

所以我有一個形式的輸入文件:

AdjGraphHeader
11
20
30
.
.
.

並且我需要創建一個字符串數組來單獨保存每一行。 所以我使用以下命令讀取文件:

String s = FileUtils.readFileToString(f);
Words w = new Words(s, (long)s.length());

然后單詞構造函數執行以下操作:

public Words(String str, long n_) {
    strings = str.split("\\n");
    string = str;
    n = n_;
    m = strings.length;
}

問題似乎是adjGraphHeader的末尾有多余的一行,但是我不知道如何擺脫它。 任何幫助將不勝感激。

我懷疑您的行不是由\\n隔開,而是由\\r\\n隔開,因此,如果刪除\\n ,則每個單詞后仍會有\\r ,並且在打印時會看到空行。 解決方案之一可以使用此正則表達式進行拆分

"\\r?\\n|\\r" - ? 使前面描述的元素為可選, | 代表“或”運算符

如果格式為\\r \\r\\n \\n ,它將處理行分隔符。

您還可以使用恕我直言的簡單方法

List<String> lines = Files.readAllLines(Paths.get("locationOfFile"));

或者如果您已經擁有File f

List<String> lines = Files.readAllLines(f.toPath());

並將每行存儲在列表中(如果您確實需要此列表,可以稍后將其轉換為數組

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM