由于服务器端数据的格式化方式,我需要使用自己的函数重新格式化,并防止任何不需要的重新格式化,我想检查我重新格式化的字符串是否需要重新格式化。
这是条件和正则表达式。
String value = "test, test, test.";
if (!value.matches("/(\\s*, )/g")) {
return value.replaceAll(",", ", ");
}
else {
return value;
}
预期结果是,如果字符串为:Test,test,test
,则会将其重新格式化为Test, test, test
。
我得到的行为是,即使代码中的value
字符串进入if
条件,它应该跳过它并进入else
。
此处找到的最佳解决方案是",(?! )", ", "
,但它解决了我甚至没有的问题,因此我将其简化为",(\\S)", ", $1"
。
建议的解决方案会在之后添加
,
,即使,
位于字符串的末尾,这是我不想要的。
同样在我的问题中,我有一个冗余的if
条件,我删除并简化了解决方案:
String value = "Test,test,test";
return value.replaceAll(",(\\S)", ", $1");
输出:
Test, test, test
答案 0 :(得分:2)
您无需检查,只需使用:
value = value.replaceAll("\\s*,\\s*", ", ");
输入例如:
test , test, test.
<强>输出强>
test, test, test.
答案 1 :(得分:1)