从行中删除新行字符的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;iString 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我在正则表达式中添加了一个+
,请立即尝试。