从行中删除新行字符的Java程序

从行中删除新行字符的Java程序,java,arrays,newline,Java,Arrays,Newline,删除行中出现的新行字符时遇到问题 我的输入是: 1,john,a 2,smith,b 3,mike ,c 4,clark,d 1,john,a 2,smith,b 3,mike,c 4,clark,d 我的输出应该是: 1,john,a 2,smith,b 3,mike ,c 4,clark,d 1,john,a 2,smith,b 3,mike,c 4,clark,d 下面是到目前为止我编写的代码。我使用“continue”根据每行中预期的“,”的计数删除不

删除行中出现的新行字符时遇到问题

我的输入是:

1,john,a

2,smith,b

3,mike

,c

4,clark,d
1,john,a

2,smith,b

3,mike,c

4,clark,d
我的输出应该是:

1,john,a

2,smith,b

3,mike

,c

4,clark,d
1,john,a

2,smith,b

3,mike,c

4,clark,d
下面是到目前为止我编写的代码。我使用“continue”根据每行中预期的“,”的计数删除不良记录。但是,我希望将错误存在“\n”的行与下一行连接起来,以获取该行,而不是将其作为坏记录删除

String test="1,john,a\n2,smith,b\n3,mike\n,c\n4,clark,d";

String[] test2=test.split("\n");

int count=0;
String s="";
for(int i=0;i<=test2.length-1;i++)
{
    for(int j=0;j<test2[i].length();j++) {
        char c= test2[i].charAt(j);
        if(c==',') {
           count++;
           if(count<2) {
              continue;
           }
           System.out.println(test2[i]);
        }
    }
    count=0;    
}
String test=“1,john,a\n2,smith,b\n3,mike\n,c\n4,clark,d”;
字符串[]test2=test.split(“\n”);
整数计数=0;
字符串s=“”;

对于(int i=0;i如果您总是每行正好有三个元素,请尝试拆分
\n
,然后将三个元素合并为一行

String test="1,john,a\n2,smith,b\n3,mike\n,c\n4,clark,d";

String[] test2=test.split("[\n,]+");

for(int i=0;i<test2.length;i+=3)
{
   System.out.println(test2[i]+","+test2[i+1]+","+test2[i+2]);
}
String test=“1,john,a\n2,smith,b\n3,mike\n,c\n4,clark,d”;
字符串[]test2=test.split([\n,]+”;
对于(int i=0;i
String test=“1,john,a\n2,smith,b\n3,mike\n,c\n4,clark,d”;
字符串[]test2=test.split(“\n”);
整数计数=0;
字符串s=“”;
对于(int i=0;i我尝试了以下方法:

字符串s=“a,b,c\n”


while(s!=null){您的输入是否保证每行正好有三个(所需)元素?@markspace是的,它在lineDoes split()中应该始终有三个元素不删除换行符?仅供参考:事后对格式不良的数据进行清理的任何尝试都可能是不可靠的。如果您的输入允许换行,您真的确定它不允许使用逗号吗?您怎么知道“3,mike\n,c\n4,clark,d”的意思是
[[3,“mike”,“c”],[4,“clark”,“d”]
而不是
[[3,mike\n,c,4,clark”,“d”]
?如果可能的话,最好的解决方案是首先更改这些值的编码方式。使用正则表达式将出现的
\n、
,\n
替换为
是否可以调用text2.split()在字符串上?这会不会在没有指定回车的情况下在每行换行符上中断?只是想知道,我在这台机器上没有JDK,而且有一段时间没有使用Java。我认为这不起作用,因为
test.split([\n,]”;
将在“mike”和“c”之间生成一个空字符串。有关响应,请参阅@markspace。但是,此代码没有返回预期的结果output@StriplingWarrior我在括号后添加了一个
+
,现在对我有效。很抱歉发布了未经测试的代码。@mohammedahmed我在正则表达式中添加了一个
+
,请立即尝试。