Java 加上一句“&引用;在Arraylist中的每段数据之后

Java 加上一句“&引用;在Arraylist中的每段数据之后,java,Java,我编写了一个程序,使我的文本文件数据类似于CSV格式 静态字符串originalFileContent=“”; 静态缓冲读卡器; 静态缓冲写入程序; 公共静态void main(字符串[]args){ 字符串输入=args[1]; 字符串输出=args[2]; 对于(int i=0;i (顺便说一句,您真的应该使用一个复杂的数据类型,即一个类来表示每一行数据。)有几件事情是错误的(有些是有争议的…。我将自上而下地尝试将它们组合在一起 main(字符串[]参数) 这是一个有争议的修正:在主方法中,

我编写了一个程序,使我的文本文件数据类似于
CSV
格式

静态字符串originalFileContent=“”;
静态缓冲读卡器;
静态缓冲写入程序;
公共静态void main(字符串[]args){
字符串输入=args[1];
字符串输出=args[2];
对于(int i=0;i

(顺便说一句,您真的应该使用一个复杂的数据类型,即一个类来表示每一行数据。)

有几件事情是错误的(有些是有争议的…。我将自上而下地尝试将它们组合在一起

main(字符串[]参数)
这是一个有争议的修正:在主方法中,有三个单独的try/catch块,它们基本上做相同的事情-try,并在出错时打印堆栈跟踪。您可以将它们压缩为一个块:

试试看{
readInput(输入);//嗯?
createLogic();
写输出(输出);
}catch(异常e){//在这种情况下,泛型catch块没有区别。
e、 printStackTrace();
}
另外,正如,
readInput(input)
不会影响这个程序,所以除非它扮演更大的角色,否则可以再看一遍这个程序

createLogic()
这取决于输入文件的结构

您正在逐行阅读,因此如果您的输入如下:

Max Amillion. 1234 South
John Doe. 4321 West
Mary Poppins. 101 Park
Acme Manufacturing Co. 9001 Main
当然,输出不会有任何更改(因为
createLogic
会将每一行添加到列表中)。我想您实际上是在尝试读取每个标记,或者更好的是,可能会重新格式化输入文件以使自己更容易


否则,您的解决方案实际上就是重构代码或输入。您需要一种方法来确定您何时拥有姓名、街道或组织。中的任何解决方案都可能会帮助您解决问题。

originalFileContent+=textString+”;
?您不应该在此处发布个人信息。
readInput()
的目的是什么?它读取某个文本文件的全部内容,将所有行连接成一行,存储在静态字段
originalFileContent
。然后
createLogic()
通过替换值来丢弃所有这些内容,那又有什么意义呢?您好,我尊重私人信息,但如果您检查地址,没有找到与邮政编码对应的街道,因此它们只是虚构的。@EnricoGabellone为了好玩,我在谷歌上搜索了第一个和最后一个条目。事实上,我在第一个案例中找到了此人,在第二个案例中找到了公司。你只是把门牌号和邮政编码连在一起,这不难看出。这不太好。对于你的问题,你可以使用“Foo Bar;Baz Street 12345”或任何其他随机字符串。
Max Amillion. 1234 South
John Doe. 4321 West
Mary Poppins. 101 Park
Acme Manufacturing Co. 9001 Main