【问题标题】:Removing substrings from java StringBuilder [closed]从java StringBuilder中删除子字符串[关闭]
【发布时间】:2019-07-31 06:50:02
【问题描述】:

我想从下面的字符串中删除所有 IP 信息。

StringBuilder s=new StringBuilder("Comment by : hihi(ip:1.23.34.5)
                Comment by : rohi(ip:1.23.48.45)
                Comment by : ro 
                Comment by : rosehi(ip:12.39.80.345)Tue Jul 30 10:06:31 EDT 2019 
                Comment by : YES(ip:1.23.72.4345) 
                Comment by : kuhTue Jul 30 10:38:24 EDT 2019
                Comment by : testipcomment(ip:12.56.7.3345)");

预期输出:-

"Comment by : hihi
 Comment by : rohi
 Comment by : ro 
 Comment by : rosehiTue Jul 30 10:06:31 EDT 2019 
 Comment by : YES 
 Comment by : kuhTue Jul 30 10:38:24 EDT 2019
 Comment by : testipcomment"

【问题讨论】:

  • 您可能需要阅读正则表达式。如果您有正则表达式,请使用 .toString().replaceAll()
  • 如何将 IP 信息放入字符串中?
  • 如果是聊天类型的消息,不要附加你得到的IP。我想在某个地方,您正在附加 IP 地址。
  • @Sambit 不,我不会在聊天中附加 ips。只是存储在数据库中。
  • @DushyantTankariya 我使用 request.getRemoteAddr() 来获取 IP 地址并附加到字符串中。

标签: java string stringbuilder


【解决方案1】:

下面的代码会给你想要的结果。

    StringBuilder s = new StringBuilder("Comment by : hihi(ip:123345)Comment by : rohi(ip:1234845)Comment by : ro Comment by : rosehi(ip:123980345)Tue Jul 30 10:06:31 EDT 2019 Comment by : YES(ip:123724345) Comment by : kuhTue Jul 30 10:38:24 EDT 2019Comment by : testipcomment(ip:125673345)");
    String str = s.toString().replaceAll("\\(ip:\\d+\\)", "");
    System.out.println(str);

【讨论】:

  • 感谢这项工作!我正在使用 replaceAll("\(ip:\\d+\\.+\\d+\\.+\\d+\\.+\\d+\)", "") 替换点分隔的ip配置喜欢 (ip:1.23.34.5)
【解决方案2】:

使用正则表达式

Pattern p = Pattern.compile("\\(ip:\\d+\\)");
Matcher m = p.matcher(s);
System.out.println(m.replaceAll(""));

ip:\\\d+ 匹配 ip 后跟任意位数。

【讨论】:

  • 括号将与此保持一致!模式应该是\\(ip:\\d+\\)!
猜你喜欢
  • 2014-02-19
  • 1970-01-01
  • 2021-03-17
  • 2015-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-02
相关资源
最近更新 更多