我想將一個字符串分解成一個由文本行組成的數組列表。每90個字符創建一行,或者遇到換行符(\ r)。每次遇到一個字符時在數組列表中分割一個字符串
我用這打破了字符串到一個數組,每90個字符(partionSize代碼):
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個字符分裂一次?
__
UPDATE:
使用正則表達式溶液下方設置,像這樣:
String[] parts = string.split("(?<=\\G.{" + partitionSize + "})|\r|\n");
I輸入的字符串斷多行,例如:
1.
2.
3.
4.
5.
當我使用下面的正則表達式將它分成數組[]部分時,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.
我不認爲你會得到該輸出爲您的字符串。請再檢查一次。它給了我需要的那個字符串的輸出。 –
如果我這樣做,那麼它的工作原理如下:String [] parts = string.split(「(?<= \\ G. {」+ partitionSize +「})| \ r \ n」);我是否從你的回答中刪除了這一點而錯過了某些東西| [\ r \ n] | ? – Ila
行分隔符根據操作系統而不同。在Unix上它是'\ n',在Windows上它是'\ r \ n',在MAC上它是'\ r'。 –