【问题标题】:How can I find a second space character in a string using indexOf in Java?如何在 Java 中使用 indexOf 在字符串中找到第二个空格字符?
【发布时间】:2020-09-17 03:30:40
【问题描述】:

我的问题如下:

假设这个句子是一个字符串类型的变量,它已经被赋值了。进一步假设这个值是一个字符串,由单个空格字符分隔的单词组成,末尾有句点。例如:“这是一个可能的句子值。”

假设声明了另一个变量 secondWord,它也是 String 类型。编写所需的语句,以便将句子值的第二个单词分配给 secondWord。所以,如果句子的价值是“西兰花很好吃”。您的代码会将值“is”分配给 secondWord。

我写了以下代码:

secondWord = sentence.substring(sentence.indexOf(" ", sentence.indexOf(" "+1)));

我不知道我在做什么,所以如果我能解释一下我应该做什么,我将不胜感激。请记住,我对编码很陌生,我不能使用循环之类的东西。谢谢。

【问题讨论】:

  • 与其试图在一行中完成所有事情,通过将中间工作分配给变量通常更容易理解您自己的代码。比如int firstSpaceIndex = sentence.indexOf(" ")

标签: java indexof


【解决方案1】:

您可以使用String.split(" ") 将句子分成“部分”,这将为您提供单词数组。

String[] words = sentence.split(" ");
String secondWord = words[1];   //0 based

如果单词 String 数组的长度小于 2,请注意 ArrayIndexOutOfBoundsException

【讨论】:

  • 您可以添加一个 if (words.length >= 2 ) 检查,然后分配 secondWord var 以防止 ArrayIndexOutOfBounds
  • 试过这个,我们在课堂上使用的浏览器IDE拒绝让我提交这个。感激不尽
【解决方案2】:

如果一定要使用indexOf,就这样:

sentence.substring(sentence.indexOf(" ") + 1, sentence.indexOf(" ", sentence.indexOf(" ") + 1));

但更好的方法是@tomgeraghty3

【讨论】:

  • 成功了!有朋友给我解释一下,我也明白了。谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-02-05
  • 2019-01-03
  • 2011-05-03
  • 2012-03-06
  • 2012-07-19
  • 2018-09-03
  • 1970-01-01
  • 2021-12-01
相关资源
最近更新 更多