当前位置:编程学习 > JAVA >>

求解决

对于给定的由纯英文单词(每个单词长度小于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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,