mis*_*sch 3 java command-line-interface
我正在写一个简单的日记控制台程序.无法真正弄清楚从用户那里分解文本输入的最简单方法.我在字符串中输入日记,然后我希望能够将该字符串打印到控制台,但是未格式化它当然只是在终端的一条长线中显示字符串,这使得读取非常不友好.如何为每个x字符左右显示一个新行的字符串?我能找到的关于文本格式的所有内容都是System.out.printf(),但是只需要打印最少量的字符.
我建议使用一些外部库来做,比如Apache commons:
http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/text/WordUtils.html
和使用
static final int FIXED_WIDTH = 80;
String myLongString = "..."; // very long string
String myWrappedString = WordUtils.wrap(myLongString,FIXED_WIDTH);
Run Code Online (Sandbox Code Playgroud)
这将使用固定宽度包装您的String,尊重空格''
没有外部图书馆
你必须实现它:
BTW:我这里没有java的编译器来测试它,所以如果不直接编译就不要愤怒.
private final static int MAX_WIDTH = 80;
public String wrap(String longString) {
String[] splittedString = longString.split(" ");
String resultString = "";
String lineString = "";
for (int i = 0; i < splittedString.length; i++) {
if (lineString.isEmpty()) {
lineString += splittedString[i];
} else if (lineString.length() + splittedString[i].length() < MAX_WIDTH) {
lineString += splittedString[i];
} else {
resultString += lineString + "\n";
lineString = "";
}
}
if(!lineString.isEmpty()){
resultString += lineString + "\n";
}
return resultString;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6071 次 |
| 最近记录: |