永发信息网

java 中,String s="jjkdf345+(873-173)??",想保留s="345+(873-173)" ,请问大侠们如何实现?

答案:4  悬赏:0  手机版
解决时间 2021-11-19 10:23
  • 提问者网友:心如荒岛囚我终老
  • 2021-11-18 12:20
java 中,String s="jjkdf345+(873-173)??",想保留s="345+(873-173)" ,请问大侠们如何实现?
最佳答案
  • 五星知识达人网友:我住北渡口
  • 2021-11-18 13:15
String s = "jjkdf345+(873-173)??";
s = s.replaceAll("[^\d\+\-\(\)]","");
System.out.println(s);追问String s="jjkdf345+(873-173)+-+-"如果后面也有多余的加减号,又如何变成:
s="345+(873-173)"追答你就直接举三个能出现的例子吧,我给你写追问首先谢谢您!我意思就是想保留算式,比如:s="jfj-fa+%&898+(45÷15+4)×2?-+??`\#@",只想得到s="898+(45÷15+4)×2",把运算前后的任意乱码去掉。而算式前后要么是数字,要么就是括号。算式种类可能如下:
(1)898+(45÷15+4)×2
(2)345+(873-173)
(3)(898+45÷15+4)×2

只想去掉它们前后的乱字符。追答String s1 = "jjkdf345+(873-173)??";
String reg = "[^\d\((]*((\d+|\(|().*(\d+|\)|))).*";
System.out.println(s1.replaceAll(reg,"$1"));

String s2 = "jfj-fa+%&898+(45÷15+4)×2?-+??`\#@";
System.out.println(s2.replaceAll(reg,"$1"));

String s3 = "jfj-fa+%&(898+45÷15+4)×2?-+??`\#@";
System.out.println(s3.replaceAll(reg,"$1"));
全部回答
  • 1楼网友:等灯
  • 2021-11-18 16:17
s.substring(0,5)
  • 2楼网友:woshuo
  • 2021-11-18 15:28
s=s.substring(5,s.length()-2)

不确定位置的话你就按照char[] 依次判断字符吧。。
正则表达式也许可以,我不会。
  • 3楼网友:拜訪者
  • 2021-11-18 13:59
s = s.replaceAll("jjkdf","");   
s = s.replaceAll("??","");
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯