问题:编写一个名为 wordWrap 的方法,该方法接受一个代表输入文件的 Scanner 作为其参数,并将文件的每一行输出到控制台,将所有超过 60 个字符的行换行。例如,如果一行包含 112 个字符,则该方法应将其替换为两行:一行包含前 60 个字符,另一行包含最后 52 个字符。包含 217 个字符的行应分成四行:三行长度为 60,最后一行长度为 37。
我的代码:
public void wordWrap(Scanner input) {
while(input.hasNextLine()){
String line=input.nextLine();
Scanner scan=new Scanner(line);
if(scan.hasNext()){
superOuter:
while(line.length()>0){
for(int i=0;i<line.length();i++){
if( i<60 && line.length()>59){
System.out.print(line.charAt(i));
}
//FINISH OFF LINE<=60 characters here
else if(line.length()<59){
for(int j=0;j<line.length();j++){
System.out.print(line.charAt(j));
}
System.out.println();
break superOuter;
}
else{
System.out.println();
line=line.substring(i);
break ;
}
}
}
}
else{
System.out.println();
}
}
}
输出中的问题:
预期输出:
你好 你好吗 敏捷的棕色狐狸跳过懒惰的狗 敏捷的棕色 狐狸跳过懒狗 我没事 谢谢 敏捷的棕色狐狸跳过懒惰的狗 敏捷的棕色 狐狸跳过懒狗 敏捷的棕色狐狸跳过懒惰的狗 敏捷的棕色 狐狸跳过懒狗 敏捷的棕色狐狸跳过懒惰的狗 敏捷的棕色 狐狸跳过懒狗 敏捷的棕色狐狸跳过懒惰的狗 敏捷的棕色 狐狸跳过懒狗 敏捷的棕色狐狸跳过懒惰的狗 敏捷的棕色 狐狸跳过懒狗 这一行正好有六十个字符长;很有意思! 再见
产生的输出:
你好 你好吗 敏捷的棕色狐狸跳过懒惰的狗 敏捷的棕色 狐狸跳过懒狗 我没事 谢谢 敏捷的棕色狐狸跳过懒惰的狗 敏捷的棕色 狐狸跳过懒狗 敏捷的棕色狐狸跳过懒惰的狗 敏捷的棕色 狐狸跳过懒狗 敏捷的棕色狐狸跳过懒惰的狗 敏捷的棕色 狐狸跳过懒狗 敏捷的棕色狐狸跳过懒惰的狗 敏捷的棕色 狐狸跳过懒狗 敏捷的棕色狐狸跳过懒惰的狗 敏捷的棕色 狐狸跳过懒狗 这一行正好有六十个字符长;多么有趣!这一行正好有六十个字符;多么有趣!这一行正好有六十个字符;很有意思!... *** 错误:第 13 行输出过多
我哪里做错了????