gpt4 book ai didi

java - 删除 .txt 文件每一行的最后一个字符

转载 作者:行者123 更新时间:2023-11-30 02:14:32 26 4
gpt4 key购买 nike

我是 Java 初学者。我已使用循环成功将用户数据输入导出到 .txt 文件,但我想删除文件每一行的最后一个逗号。我尝试使用分隔符,但无法让replaceAll 成功删除每行的最后一个逗号。

我当前导出数据的方法是这样的:

public void Quit()
{
System.out.println(ProjectList.get(0).ProjectName);
File fileObject = new File("results.txt");
CorrectInput = true;
ShowMenu = false; //if ShowMenu is false, the program's menu will terminate
PrintWriter outputStream = null;
try
{
outputStream =
new PrintWriter(new FileOutputStream("results.txt"));
}
catch(FileNotFoundException e)
{
System.out.println("Error opening the file" +"results.txt");
System.exit(0);
}
for (int i=0; i<ProjectList.size(); i++){
outputStream.print(ProjectList.get(i).ProjectName+","+ ProjectList.get(i).NumberOfMember +","); //Project Name and Number of Members exported
for (int Membercount = 0; Membercount < ProjectList.get(i).NumberOfMember; Membercount ++) //For as long as the member count is less than the total number of members, the program will ask for the user input
{

outputStream.print(ProjectList.get(i).TeamMember[Membercount]);
outputStream.print(",");
//END OF LIST OF MEMBERS
}

for (int CountingIndex = 0; CountingIndex < ProjectList.get(i).NumberOfMember; CountingIndex ++) //For as long as the member count is less than the total number of members, the program will ask for the user input
{
outputStream.print(ProjectList.get(i).TeamMember[CountingIndex] + ",");
for (int CountedIndex = 0; CountedIndex < ProjectList.get(i).NumberOfMember; CountedIndex++) {


if(CountingIndex!=CountedIndex) { //new, adding csv format
outputStream.print(ProjectList.get(i).TeamMember[CountedIndex] + ",");
outputStream.print(ProjectList.get(i).Vote[CountingIndex][CountedIndex] + ",");

}


}

}
//for (int CountedIndex = 0; CountedIndex < ProjectList.get(i).NumberOfMember && CountingIndex != CountedIndex; CountedIndex++)


outputStream.println();
}
outputStream.close();
// read file data into a String
// read file data into a String
String data = null;
try {
data = new Scanner(new File("results.txt")).useDelimiter("\\Z").next();
data = data.replaceAll("(?m)\\,$", " ");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


System.out.println("\tGoodbye. ");
scan.close();

}

示例 .txt 输出如下所示:

PRO1,2,MEM1,MEM2,MEM1,MEM2,100,MEM2,MEM1,100,
PRO2,2,MEM3,MEM4,MEM3,MEM4,100,MEM4,MEM3,100,

但我希望 .txt/csv 输出看起来像:

PRO1,2,MEM1,MEM2,MEM1,MEM2,100,MEM2,MEM1,100
PRO2,2,MEM3,MEM4,MEM3,MEM4,100,MEM4,MEM3,100

我应该将扫描器的 try/catch 语句移至单独的方法吗?非常感谢您的帮助。

最佳答案

您可以使用substring来获取您要查找的字符串,我想您可以从文本文件中逐行读取:

这是您获得所需字符串的方式:

String s = "PRO1,2,MEM1,MEM2,MEM1,MEM2,100,MEM2,MEM1,100,";

s = s.substring(0, s.length()-1);

System.out.println(s);

Output: PRO1,2,MEM1,MEM2,MEM1,MEM2,100,MEM2,MEM1,100

希望这会有所帮助。

关于java - 删除 .txt 文件每一行的最后一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49011536/

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