删除所有点,但不删除\n数字-Java
我正在试着更换所有的电池。除1.02等数字外的字符串中 我有一个字符串:-删除所有点,但不删除\n数字-Java,java,replace,Java,Replace,我正在试着更换所有的电池。除1.02等数字外的字符串中 我有一个字符串:- String rM = "51.3L of water is provided. 23.3L is used." 如果我使用rM.replaceAll,那么每个点都将被替换,我希望我的字符串为:- 51.3L of water is provided 23.3L is used 可以用java做吗?我不是java开发人员,但你能用下面的模式来尝试吗 rM = rM.replaceAll("
String rM = "51.3L of water is provided. 23.3L is used."
如果我使用rM.replaceAll,那么每个点都将被替换,我希望我的字符串为:-
51.3L of water is provided 23.3L is used
可以用java做吗?我不是java开发人员,但你能用下面的模式来尝试吗
rM = rM.replaceAll("(?<=[a-z\\s])\\.", "");
是的,这是可能的。像下面这样的方法应该可以奏效。正则表达式应该检查元素是否以字符0-9开头。如果是,请不要更改元素。如果没有,请更换任何。使用空字符串 提供管柱rM=51.3L水。使用23.3L。; 字符串[]标记=rM.split; StringBuffer=新的StringBuffer; 对于字符串元素:标记{ if元素匹配[0-9]+.*{ buffer.appendelement+; }否则{ buffer.appendelement.replace.,+; } } System.out.printlnbuffer.toString; 输出:
51.3L of water is provided 23.3L is used
提供51.3升水,使用23.3升水
这里有一个简单的方法,假设您想要去掉直接放在字符后面的点,而字符不是空白 下面的代码基本上用空格分隔句子,并删除每个结果字符序列中的尾随点,然后将它们再次连接到单个字符串 公共静态无效字符串[]args{ //例句 提供管柱rM=51.3L水,使用23.3L水。; //用空格分隔句子 字符串[]parts=rM.split\\s+; //检查所有部件 对于int i=0;i
使用否定的向前看,向后看,寻找一个''.',而不是在十进制数的中间。
rM.replaceAll("(?<![\\d])\\.(?![\\d]+)", "")
使用负前瞻,您可以使用\。?![\d]\.[\d] 输出:
51.3L of water is provided 23.3L is used
这将是一个更好的解决方案,但目前它不起作用。我来看看我能不能再接再厉this@RobEvans嗨,你能再确认一下吗?你拿到了!提供管柱rM=51.3L水。使用23.3L。;System.out.printlnrM.replaceAll?@RobEvans感谢您的确认。如果有两个点,则不更换。它只删除1。