gpt4 book ai didi

java - Java 中连接字符串会生成 Between-in null

转载 作者:行者123 更新时间:2023-11-30 04:00:10 24 4
gpt4 key购买 nike

这个问题看起来非常类似于:Concatenating null strings in Java

但我的问题有些不同。

我想构建文件的绝对路径:

String path = properties.get("path"); // returns /home/myuser/relativepath/ , ends with bar /
String file = currentFile; // currentFile values "file.txt"
String result = path + file; // this results in /home/myuser/relativepath/nullfile.txt

为什么会有“空”文本?这就是我的应用程序现在无法运行的原因。

我已经在 Windows 和 Linux 上审阅过它。在 Windows 中它可以完美运行。在 Linux 中,我遇到了这个问题。

我上传了属性文件,然后用 vi 命令进行编辑。也许这就是问题所在?难道我不应该使用这种方式生成绝对路径,并使用Java中的File.Separator属性吗?

编辑:我已经发布了我的最终正确答案以及详细步骤。我希望它会有用。

最佳答案

我敢打赌(虽然我还没有看到 Java 这样做)是在你的属性文件中存在某种 null-ish 字符(例如回车符),Windows 在操作系统级别处理该字符,因此 Java/Properties 不会没看到。

首先,尝试打印 path 字符串的长度和最后几个字符,例如:

for(int i = Math.max(0, path.length()-5); i < path.length(); i++) {
System.out.print(path.charAt(i)+":"+((int)path.charAt(i))+" ");
}
System.out.println(path.length());

愿意在 Linux 上赌最后一个字符,这并不是你所期望的。正确的修复方法是清理您的属性文件,以便它在两个操作系统上兼容。

关于java - Java 中连接字符串会生成 Between-in null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22160748/

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