簡體   English   中英

將字符串轉換為多維int數組

[英]Convert string to multidimensional int array

我在將我從文件中讀取的字符串轉換為多維int數組時遇到了一些麻煩, 在這里我發現了建議。

有關字符串內容,請參見此處

本質上,我想替換CR和LF,以創建多維int數組。

根據我下面的代碼,我可能在哪里出錯?

public static void fileRead(String fileContent) {
    String[] items = fileContent.replaceAll("\\r", " ").replaceAll("\\n", " ").split(" ");

    int[] results = new int[items.length];

    for (int i = 0; i < items.length; i++) {
        try {
            results[i] = Integer.parseInt(items[i]);

            System.out.println(results[i]);
        } catch (NumberFormatException nfe) {};
    }
}

編輯:我沒有遇到任何錯誤。 上面的邏輯僅創建一個大小為2的int數組,即result [0] = 5和results [1] = 5

感謝您的任何建議。

這是Java 8解決方案:

private static final Pattern WHITESPACE = Pattern.compile("\\s+");

public static int[][] convert(BufferedReader reader) {
    return reader.lines()
            .map(line -> WHITESPACE.splitAsStream(line)
                    .mapToInt(Integer::parseInt).toArray())
            .toArray(int[][]::new);
}

用法(當然您也可以從文件中讀取):

int[][] array = convert(new BufferedReader(new StringReader("1 2 3\n4 5 6\n7 8 9")));
System.out.println(Arrays.deepToString(array)); // [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

暫無
暫無

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

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