Java:将文本拆分为大小均匀的块(在空白处)

时间:2017-06-16 20:07:14

标签: java string substring stringtokenizer

我正在寻找是否有人有一种很好的方法可以将一行文本拆分成白色空间中的均匀大小的块。具体来说,我正在寻找一个带有字符串和数量块的函数。目标是分割的每一行具有相同的字符数,或尽可能接近(所有行之间的字符增量尽可能接近0)。例如,如果字符串是:

text =“Lorem ipsum dolor sit amet,consectetur adipiscing elit.Verstibulum augue sapien,varius a leo vel,tincidunt lobortis ipsum.Vivamus ex lectus,efficitur nec lorem id,elementum volutpat libero。”

chunksSize = 2,将是:

  

第1行:Lorem ipsum dolor坐下来,精神恍惚。 Vestibulum augue sapien,varius a leo vel

     

第2行:tincidunt lobortis ipsum。 Vivamus ex lectus,efficitur nec lorem id,   elementum volutpat libero。

chunksSize = 3,将是:

  

第1行:Lorem ipsum dolor坐下来,精神恍惚。前庭

     

第2行:增加sapien,varius a leo vel,tincidunt lobortis ipsum。 Vivamus

     

第3行:ex lectus,efficitur nec lorem id,elementum volutpat libero。

chunkSize = 4,将是:

  

第1行:Lorem ipsum dolor sit amet,consectetur adipiscing

     

第2行:elit。 Vestibulum augue sapien,varius a leo vel,

     

第3行:tincidunt lobortis ipsum。 Vivamus ex lectus,

     

第4行:efficitur nec lorem id,elementum volutpat libero。

这些分裂可能并不像我用眼睛那样完全准确。有人想在Java中试试这个吗?

1 个答案:

答案 0 :(得分:0)

int noChunks = 3;//get this from user
String line = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue sapien, varius a leo vel, tincidunt lobortis ipsum. Vivamus ex lectus, efficitur nec lorem id, elementum volutpat libero.";

String []arr = line.split(" ");

int chunkSize = arr.length/noChunks;

List<String> chunks = new ArrayList<String>();

int index = 0;

for(int i=0;i<noChunks;i++){
    StringBuilder builder = new StringBuilder();
    for(int x = 0;x<chunkSize;x++){
        builder.append(arr[index]+" ");
        index++;
    }
    chunks.add(builder.toString());
}