加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – replaceAll边界和异常

发布时间:2020-12-15 04:09:17 所属栏目:Java 来源:网络整理
导读:我正在尝试使用replaceAll来消除字符串中的所有空格,但两个区域除外. 如果我的字符串是 AB CD #E F# #GH I# JK L M 然后我希望它输出为 ABCD#E F##GH I#IJKLM 目前,它输出ABCD#EF ## GH#IJKLM而不区分#字符.有没有办法在replaceAll上使用正则表达式? String
我正在尝试使用replaceAll来消除字符串中的所有空格,但两个区域除外.

如果我的字符串是

AB CD #E     F# #GH   I# JK L   M

然后我希望它输出为

ABCD#E     F##GH   I#IJKLM

目前,它输出ABCD#EF ## GH#IJKLM而不区分#字符.有没有办法在replaceAll上使用正则表达式?

String s1 = "AB CD #E     F# #GH   I# JK L   M";
s1 = s1.replaceAll("s+","");
System.out.println(s1);

解决方法

我不擅长正则表达式.我将使用一个循环.

String s1 = "AB CD #E     F# #GH   I# JK L   M";
StringBuilder sb = new StringBuilder();
boolean keepSpace = false;
for(int i = 0; i < s1.length; i++){
    char c = s1.charAt(i);
    if(keepSpace || c != ' ')
        sb.append(c);
    if(c == '#')
        keepSpace = !keepSpace;
}
s1 = sb.toString();
System.out.println(s1);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读