将数据写入字符串生成器的逻辑,在由于append(“\n”)而迭代最后一条记录之后,将添加一个我不需要的新空行。
public static void main(String[] args) {
for(int i=0;i<5;i++){
StringBuilder d = new StringBuilder();
d.append("sampledata")
.append("\n");
System.out.print(d);
}
writeFile(d,filePath);
}
您必须使用trim()
函数从StringBuilder
中删除最后一个空格。
class Main {
public static void main(String[] args) {
for(int i = 0; i < 5; i++){
StringBuilder d = new StringBuilder();
d.append("sampledata");
if(i == 4)
{
d.toString().trim();
}
else
{
d.append("\n");
}
System.out.print(d);
}
}
}
文件末尾的“空行”实际上不是空行。如下图所示,此处的文件大小为零字节。为了在文件中存在一行,它必须以两个字节的CR LF终止,或者。。。文本需要添加我们的无行终止。如果未添加行终止符,则该“空行”实际上为空,接下来是EOF。
如果使用文件读取器的任何实现,readLine()
函数将仅获取API中指示的终止行:
在这段代码中,没有在末尾添加额外的行。代码所做的唯一一件事就是向行中添加行终止字符。通过检查以下条件,可以防止终止最后一行:
int LOOP_MAX = 5;
for (int i = 0; i < LOOP_MAX; i++) {
StringBuilder d = new StringBuilder();
d.append("sampledata");
if (i != LOOP_MAX -1) {
d.append("\n");
}
System.out.print(d);
}
无论您是否检查此条件,行数都将相同。唯一的区别是最后一行是否将终止与CR LF或只是EOF。仅此而已。
您可以在最后一次迭代中使用if条件。
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
StringBuilder d = new StringBuilder();
d.append("sampledata");
if (i == 4) {
break;
} else {
d.append("\n");
}
System.out.print(d);
}
}
输出将是
sampledata
sampledata
sampledata
sampledata
将数据写入字符串生成器的逻辑,在迭代由于追加(\n)的最后一条记录后,添加了一个我不需要的新空行。
我正在使用Goland来编写我的grpc应用程序。生成我的原型文件后,文件末尾不存在尾随换行符。有没有办法在 IDE 中启用此功能?
问题内容: 我有一个文本区域,其中包含一些文本,我想再次向其中添加一些行(第一行+我要添加的其他行),但是它不起作用。 我现在的操作方式将擦除旧文本并仅显示新行。 问题答案: 代替使用,使用。 将给定的文本追加到文档末尾。如果模型为null或字符串为null或为空,则不执行任何操作。 这会将文字添加到您的末尾。 另一个选择是使用来从中获取文本,然后操作String(添加或删除或更改String),
注意,这个空间只在最末端可见,因为我不想改变布局。我可以使recycerview有一个50dp的边际底部,但我不想这样做。
问题内容: 我正在尝试提供获取JSON或XML响应的选项。 JSON可以正常工作,但是当我查看XML时,出现错误。 http://lmsapi.com/?api_key=fba9e59d7af86b239e82581780ff987e&format=json http://lmsapi.com/?api_key=fba9e59d7af86b239e82581780ff987e&format=xml
我需要创建一个组合框,可以有一个按钮在其列表视图的结尾。该列表可以添加或删除项目,当项目数量超过5个时,会显示一个滚动条。此外,当选择一个项目时,该列表视图不会自动关闭。 如何像下面的截图一样添加一个按钮“新项目”? 这是源代码: helloApplication.java 你好控制器.java 您好,查看.fxml