【问题标题】:substring (java) doesn't work as i expected子字符串(java)不像我预期的那样工作
【发布时间】:2019-05-05 02:45:57
【问题描述】:

我有一个代码应该从一个字符串中取出 2 个元素。使用字母数字可以正常工作,但是当我输入一个相同数字的字符串时,即只是“1”:(111111111),没有返回任何东西或只是“1”或与我预期的非常不同的东西。

这是我的代码:

String str= "222222222";
System.out.println(str.replace(str.substring(3, 5), ""));           }

在这种情况下,返回“2”,但是 如果字符串少一个“2”,则不返回任何内容

感谢您的帮助:)

【问题讨论】:

  • 这不是预期的吗?你有什么期待?
  • str.substring(3,5)"22"。所以你用""替换每个"22"
  • ... 因为有奇数个 2,所以你会得到一个不匹配的 "2"
  • 或许你应该阅读文档,即replace(target, replacement)的javadoc
  • 这绝对是一个逻辑问题。我会直接去 javadoc 谢谢大家,人们

标签: java string replace substring


【解决方案1】:

如果str"222222222",那么str.substring(3,5)"22"。所以你打电话给str.replace("22", ""),它将每个 "22" 替换为""

如果你想删除一个字符串的片段,你可以使用substring挑选出其余部分。

System.out.println(str.substring(0,3) + str.substring(5));

或者,StringBuilder 有一个 delete 方法:

StringBuilder sb = new StringBuilder(str);
sb.delete(3,5);
System.out.println(sb);

您可以使用sb.toString()StringBuilder 转换回字符串。

【讨论】:

    猜你喜欢
    • 2012-06-13
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 2016-03-07
    • 2014-05-16
    • 1970-01-01
    • 2022-01-11
    相关资源
    最近更新 更多