【问题标题】:Substring(int,int) in java to consider stringjava中的Substring(int,int)考虑字符串
【发布时间】:2021-11-11 21:40:39
【问题描述】:

我可能会为此找到复杂的方法,但事情就是这样: 得到一个存储在全局变量中的字符串: 例如: 这是从存储在全局变量中的 REST API 调用读取后 JSON 字符串的结果: 字符串 Str= ["["b8f400be-b823-49c6-b0dd-5c97dc5d45e4"]"]

现在我需要在“”中拆分字符串,输出应该只有 b8f400be-b823-49c6-b0dd-5c97dc5d45e4

我使用了 substring,indexOf,lastIndexOf 但在这两种情况下都无法获得明确的工作解决方案。我在这里缺少什么?

str.substring(5, str.indexOf("\"", str.indexOf("\"") + 1))
 str.substring(5, str.substring.lastIndexOf("\"")-4);

反斜杠和双引号遇到错误,所以使用\"方法提取结果但仍然不起作用。

由于子字符串的参数只接受 (int,int) 我无法在那里提供一个字符串来检索,任何帮助将不胜感激

【问题讨论】:

  • str 变量实际上包含什么?
  • 我可以给你工作代码,或者我可以帮你找到你need的东西来帮助你自己。您的工具箱不仅仅是一把锤子。如果锤子无法完成工作,请使用不同的工具。我建议查看lastIndexOf 的第二个参数到substring。请注意,您可以搜索字符串序列,而不仅仅是一个字符或单个字符串。还有许多其他字符串方法可以帮助您以不同的方式完成任务。
  • @Unmitigated str 包含 ["["b8f400be-b823-49c6-b0dd-5c97dc5d45e4"]"]
  • @MarsAtomic 我尝试了所有的字符串方法,例如 substring,lastIndexOf ,search 但它们都没有完成这项工作,我不断收到错误消息:超出范围异常,超出范围 -1

标签: java string global-variables indexof substr


【解决方案1】:

您正在添加额外的不必要的逻辑。简直了

str.substring(5, str.lastIndexOf("\"")-3); 甚至

str.substring(5, str.lastIndexOf("\\"));

另外,这是正确分配/发布字符串变量的方法 - String str = "["[\"b8f400be-b823-49c6-b0dd-5c97dc5d45e4\"]"]"

至少这是我假设你使用 5 作为你的子字符串的第一个索引。我原本以为你的意思是String str = "[\"b8f400be-b823-49c6-b0dd-5c97dc5d45e4\"]" 你发布的是一个包含单个字符串值的数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-10
    • 2012-11-19
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-03
    相关资源
    最近更新 更多