0

文字列をテキスト行で構成される配列リストに分解しようとしています。行は、90 文字ごと、または改行 (\r) が検出されたときに作成されます。

これを使用して、文字列を 90 文字ごとに配列に分割しています (コードの partitionSize):

    private static List<String> getParts(String string, int partitionSize) {
    List<String> parts = new ArrayList<String>();
    int len = string.length();
    for (int i=0; i<len; i+=partitionSize)
    {
        parts.add(string.substring(i, Math.min(len, i + partitionSize)));
    }
    return parts;
    }

これを変更して、改行 (「\r」) をチェックし、改行が検出されるたびに分割し、さらに 90 文字ごとに分割するようにするにはどうすればよいですか?

__

アップデート:

以下に示す正規表現ソリューションを使用すると、次のようになります。

String[] parts = string.split("(?<=\\G.{" + partitionSize + "})|\r|\n"); 

複数行に分割された文字列を入力します。たとえば、次のようになります。

 1. 
 2. 
 3. 
 4.
 5. 

以下の正規表現を使用して array[] パーツに分割すると、parts.length は 8 になり、各項目をパーツごとに出力すると、次のようになります。

line 0 is 1. 
line 1 is 
line 2 is 2. 
line 3 is 
line 4 is 3.
line 5 is 
line 6 is 4.
line 7 is 
line 8 is 5.

この場合、parts.length は 5 にする必要があります。

4

2 に答える 2