Java 将逗号替换为后跟空格的逗号
由于服务器端数据的格式化方式,我需要使用自己的函数对其进行重新格式化,并且为了防止任何不必要的重新格式化,我想检查正在重新格式化的字符串是否需要重新格式化 下面是所涉及的条件和正则表达式Java 将逗号替换为后跟空格的逗号,java,regex,Java,Regex,由于服务器端数据的格式化方式,我需要使用自己的函数对其进行重新格式化,并且为了防止任何不必要的重新格式化,我想检查正在重新格式化的字符串是否需要重新格式化 下面是所涉及的条件和正则表达式 String value = "test, test, test."; if (!value.matches("/(\\s*, )/g")) { return value.replaceAll(",", ", "); } else { return value; } 如果字符串为:Test,
String value = "test, test, test.";
if (!value.matches("/(\\s*, )/g")) {
return value.replaceAll(",", ", ");
}
else {
return value;
}
如果字符串为:Test,Test,Test
,则预期结果为:它将重新格式化为Test,Test,Test
我得到的行为是,即使代码中的值
字符串也会进入if
条件,此时它应该跳过它并进入else
咨询我的审阅者后进行编辑
这里为我找到的最好的解决方案是,(?!)
建议的解决方案将在,
之后添加,
,即使,
将位于字符串的末尾,这是我不想要的
同样在我的问题中,我有一个冗余的if
条件,我将其删除并简化为:
String value = "Test,test,test";
return value.replaceAll(",(\\S)", ", $1");
输出:
test , test, test.
测试,测试,测试
您不需要检查,只需使用:
value = value.replaceAll("\\s*,\\s*", ", ");
输入例如:
test , test, test.
输出
test, test, test.
您无需检查,只需使用:
value = value.replaceAll("\\s*,\\s*", ", ");
输入例如:
test , test, test.
输出
test, test, test.
您可以使用:
result = subject.replaceAll(",([^ ])", ", $1");
您可以使用:
result = subject.replaceAll(",([^ ])", ", $1");
您不需要在正则表达式中包含/
和/g
。您也可以尝试返回值。replaceAll(,(?!),“,””,”)
并删除,如果条件无效,则它是无用的。您不需要在正则表达式中包含/
和/g
。您还可以尝试返回值。replaceAll(,(?!),“,”,“,”,”,“,”)
并删除,如果
条件无效,则它应该是测试,测试,测试
,作为输出。使用(“\\s*,\\s*”,“,”)
aah你是说空格,是的这是我的坏@XtremeBaumer我想OP想要测试,测试,测试
好的,我修复了它谢谢你它应该是测试,测试,测试
作为输出。使用(“\\s*,\\s*”,“,”)
aah你是说空格,是的,这是我的坏@XtremeBaumer我想OP需要测试,测试,测试
好的,我修好了谢谢