gpt4 book ai didi

java - 需要帮助将字符串写入文本文件中的多行

转载 作者:行者123 更新时间:2023-12-01 12:33:15 25 4
gpt4 key购买 nike

我有一个字符串数组 toFile[],我正在尝试将其写入文本文件。在测试时,有人提醒我,如果字符串到达​​窗口的边界,记事本不会将字符串换行到下一行。作为一个完美主义者,我想将字符串拆分为长度为 250 个字符的子字符串,并将每个子字符串写入文件,并在每个子字符串后换行。

在测试时,我遇到的问题(似乎无法解决)是我的程序将运行一次循环,然后因错误而失败。

输出和错误的示例:

toFile[2].length = 2432

temp.length = 250
split = 250
iLength = 2182

temp.length = 0
split = 500
iLength = 1932

java.lang.StringIndexOutOfBoundsException: String index out of range: -250

我的代码:

System.out.println("toFile[2].length = "+Integer.toString(toFile[2].length()));
System.out.println("");
if(toFile[2].length()>250){
int iLength=toFile[2].length(), split = 0;
while(iLength>250){
String temp = toFile[2];
temp = temp.substring(split, 250);
System.out.println("temp.length = "+Integer.toString(temp.length()));
bw.write(temp);bw.newLine();
split=split+250;
System.out.println("split = "+Integer.toString(split));
iLength=iLength-250;
System.out.println("iLength = "+Integer.toString(iLength));
System.out.println("");
}
bw.write(toFile[2].substring(split));
}else{bw.write(toFile[2]);bw.newLine();}
bw.newLine();

我也尝试过这个 while 循环,它遍历整个字符串,但仍然只将字符串写入一行:

int iLength=toFile[2].length(), start = 0;
String temp = toFile[2];
while(iLength>250){
bw.write(temp,start,250);

start=start+250;
System.out.println("start = "+Integer.toString(start));

iLength=iLength-250;
System.out.println("iLength = "+Integer.toString(iLength));
System.out.println("");
}

最佳答案

只需更正代码中的一件事,我希望代码的其余部分能够正常工作并且不会给出当前错误。进行以下修正。在下面的语句中,您将固定结束索引的值,即 250。

temp = temp.substring(split, 250);

当您第一次运行代码并将长度为 250 的字符串存储在 temp 中时,此方法效果很好,因为它执行为 temp = temp.substring(0, 250); 因为split=0

第二次 split 变为 250 并且方法执行为 temp = temp.substring(250, 250); 并且 temp.length 变为0

但是下次开始索引超出结束索引时,即 temp = temp.substring(500, 250); 这会在您的情况下引发错误。

因此,每次获取子字符串时都会增加结束索引,或者您可以这样做..temp = temp.substring(split, split + 250);

有关 Java 的其他有趣且解决问题的帖子,您可以访问 http://www.codingeek.com/

关于java - 需要帮助将字符串写入文本文件中的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25777652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com