【问题标题】:How do I remove a repeating characted in my string and trim the white spaces within a string in Java?如何删除字符串中的重复字符并在 Java 中修剪字符串中的空格?
【发布时间】:2016-02-21 23:50:16
【问题描述】:

我必须测试几个 10 位数的值。

          Value: 124324*3213*4324*44*3123**13*
         Expected value: 1243243213432444312313

到目前为止,我已经能够使用 str.replace() 函数替换星星。但是我无法删除删除星号后创建的空白?。

【问题讨论】:

  • 你是如何删除 * 的?
  • 请添加您尝试过的代码。要通过删除而不是添加空格来替换某些内容,请尝试: str.replace('*', '');
  • 使用这个:value = value.replace(value.charAt(lastIndexof('*'),'\u0000');
  • 所以你只需要删除星号(*)字符而不是重复数字吗?

标签: java regex string


【解决方案1】:

试试这样的:

String value = "124324*3213*4324*44*3123**13*".replace("*", "");

【讨论】:

  • @GauthamHonnavara 你试过了吗?你看过文档吗?
  • 不,String.replace 方法允许charCharSequence 参数:docs.oracle.com/javase/8/docs/api/java/lang/…
  • 是的,它对我有用。万分感谢。但是,你能告诉我 charSequence 是否被认为是一个字符串。
  • 另外,有没有办法只删除最后出现的 *(类似于最后一个索引)但保留剩余的。
  • 你的意思是这样的吗? stackoverflow.com/questions/16665387/…
【解决方案2】:

请记住,字符串在 Java 中是不可变的,因此您必须再次赋值:

String s = "124324*3213*4324*44*3123**13*";
s = s.replaceAll("\\*", "");

"\\*" - 是一个正则表达式,但您不必担心。重要的是“*”符号在正则表达式中具有特殊含义,因此您必须使用反斜杠对其进行转义。要在 Java 字符串中创建反斜杠字符,您必须使用“\\” - 所以最终表达式是“\\*”。

【讨论】:

  • s = s.replace("*", "");也足够了
  • @Taelsin 你是对的,也许使用正则表达式对于这么简单的任务来说有点太复杂了。
  • 非常感谢您的解决方案,有没有办法可以只删除最后一次出现的 *.就像删除那个*的索引一样。
猜你喜欢
  • 1970-01-01
  • 2014-03-26
  • 2013-05-01
  • 1970-01-01
  • 2011-05-18
  • 2011-04-17
  • 2019-09-10
  • 1970-01-01
相关资源
最近更新 更多