gpt4 book ai didi

Java writer 输出中的第一个字符 (int) 错误

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

我正在尝试用Java编写一个编写器,它从ArrayList中获取第一行和第一列的整数值,并从float[][]中获取其余的值并将其格式化为 CSV。这样做我的第一专栏变得很奇怪,我找不到问题。如果有任何建议或帮助,我将非常高兴。这是我的代码:

public static void resulttofile(List<Nm_item> nmvector,
float[][] cor_matrix, String filename) {
try {
FileWriter writer = new FileWriter(new File(filename + ".csv"));
for (int i = nmvector.get(0).row; i <= nmvector
.get(nmvector.size() - 1).row; i++) {
writer.write(sepw + nmvector.get(i).nm);
}
writer.write(System.getProperty("line.separator"));
for (int i = nmvector.get(0).row; i <= nmvector
.get(nmvector.size() - 1).row; i++) {
writer.write(nmvector.get(i).nm);

for (int j = nmvector.get(0).row; j <= nmvector.get(nmvector
.size() - 1).row; j++) {
writer.write(sepw + cor_matrix[i][j]);
}
writer.write(System.getProperty("line.separator"));
}

writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Results saved to " + filename + ".csv");
}

和输出(裁剪):

        350 351 352 353
? 0 0.003 0.171 0.001
? 0.003 0 0.274 0
è 0.163 0.271 0 0.345
Ü 0 0 0.35 0
? 0.008 0.019 0.326 0.044
? 0.008 0.016 0.199 0.015
? 0.015 0.037 0.361 0.04
? 0.029 0.023 0.171 0.023
? 0.038 0.042 0.186 0.038

最佳答案

尝试:

writer.write(Integer.toString(nmvector.get(i).nm));

或者,正如 OldCurmudgeon 所说:

writer.write("" + nmvector.get(i).nm);

重点是FileWriter包含多个write方法。有write(int)write(String) 。第一个不写数字,而是写与给定数字相对应的字符,例如 writer.write(88)将输出字符“X”,writer.write(89)会输出'Y',你可以猜猜是什么writer.write(90)会给你。您需要将整数转换为字符串,以便正确的 write()方法被调用。

第二种形式writer.write("" + number)之所以有效,是因为当您将数字添加到字符串时,Java 编译器会自动将数字转换为字符串。这就是为什么writer.write(sepw + nmvector.get(i).nm);有效,但是writer.write(nmvector.get(i).nm);没有。

关于Java writer 输出中的第一个字符 (int) 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10973128/

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