求解决
对于给定的由纯英文单词(每个单词长度小于80个字符)和空格组成的文本文件,我们需要对其做一次对齐的处理。要求处理后的文件,每行不超过80个字符,单词不能被截断,同行单词间有且只有一个空格,每行不能以空格开始。请实现完成这个功能的处理函数
--------------------编程问答--------------------
那对齐后每一行一个单词可以不
--------------------编程问答--------------------
请参考
package test;
import java.util.LinkedList;
import java.util.List;
/**
* 数据对齐
*
* @author java2000_net
*
*/
public class T3 {
/**
* @param args
*/
public static void main(String[] args) {
String str = "1 55555 666666 22 333 7777777 4444 333 22";
// 根据空格分隔字符
String[] data = str.split("\\s+");
String[] rtn = toLengh(data, 7);
for (int i = 0; i < rtn.length; i++) {
System.out.println(rtn[i] + "\t" + rtn[i].length());
}
}
/**
* 数组重组到指定长度
*
* @param data
* @param length
* @return
*/
public static String[] toLengh(String[] data, int length) {
List<String> list = new LinkedList<String>();
StringBuilder str = new StringBuilder(data[0]);
for (int i = 1; i < data.length; i++) {
if (str.length() + 1 + data[i].length() <= length) {
str.append(" " + data[i]);
} else {
list.add(str.toString());
str.setLength(0);
str.append(data[i]);
}
}
return (String[]) list.toArray(new String[0]);
}
}
--------------------编程问答--------------------
版主的很好哎,值得一看,谢谢版主
补充:Java , Java SE