[英]Java, sort text into lines
我正在編寫一個從文件中讀取文本,然后將其排序為最大特定寬度的行的代碼。
示例:包含“ aaaa bbbb cccc dddd”的文本
指定的寬度為16
所以輸出應該是
aaaa bbbb cccc //width is only 14, if dddd is added, it would be longer than 16.
dddd
我的方法:閱讀文本並將其分配給字符串
Scanner input_OUT = new Scanner(new File("abc"));
PrintStream output = new PrintStream("abc");
.
.
while (input_OUT.hasNextLine()) {
str = input_OUT.nextLine();
}
String s = "";
while(input_OUT.hasNext()) { // get words if it still have
if (s.length() + input_OUT.next().length() > width) {
s = str.substring(0,s.length());
output.println(s);
str = str.substring(s.length()+1,str.length());
s = "";
}
else {
s += input_OUT.next();
}
}
雖然可以編譯。 但是該文件未顯示任何輸出。 我認為我的代碼不正確。 我知道有用於stringbuild,字符串拆分,數組的選項。 但是我現在被允許這樣做。
第一個問題是在此循環內,假設從文件中掃描了多個內容,則此方法將行不通。
String str;
while (input_OUT.hasNextLine()) {
str = input_OUT.nextLine();
}
您要做的就是將str重置為下一個掃描的元素。
更好的方法是將文件輸入存儲到字符串數組中。
String str;
String S[] = new String[#stringsInFile];
int i = 0;
while (input_OUT.hasNextLine()) {
str = input_OUT.nextLine();
S[i] = str;
i++
}
現在,您要做的就是操作數組S [],然后將其輸出到輸出文件。
在注釋中指出您說您不能使用數組。 讓我們繼續添加到S
然后允許您對S
進行操作。 該方法:
String str;
String S = "";
while (input_OUT.hasNextLine()) {
str = input_OUT.nextLine();
S = S +" "+ str; //This will keep adding onto S until hasNextLine is false
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.