【问题标题】:Split a string and get the second last word拆分字符串并获取倒数第二个单词
【发布时间】:2016-04-04 12:11:35
【问题描述】:

我有一个字符串“Hai,Hello,How,are,you”

我需要的是我需要倒数第二个单词“are”

String string = "Hai,Hello,How,are,you";

String[] bits = string.split(",");
String lastWord = bits[bits.length-1]
tvs.setText(lastWord);

但是当我这样做时:

String lastWord = bits[bits.length-2];

我没有得到倒数第二个字。

【问题讨论】:

  • 字符还是单词?
  • 数组从第 0 个索引开始。您想要的单词位于 bits.length-2 位置
  • 我给了这样的......但我没有得到......
  • 我刚试过。 Jeet 的回答对我来说效果很好。
  • 与当前代码共享您获得的输出。

标签: java string split


【解决方案1】:

您需要的是String lastWord = bits[bits.length-2];,因为bits[bits.length-1]; 会返回最后一个字,而不是倒数第二个字。

这是因为数组的索引以0 开始,以length-1 结束。

这里是更新后的代码sn-p:

String string = "Hai,Hello,How,are,you";
String[] bits = string.split(",");
String lastWord = bits[bits.length - 2];
tvs.setText(lastWord);

【讨论】:

  • 我是这样给的..但我没有得到结果
  • @Jocheved 那么你有一个不同的问题。这个答案是正确的。
  • 谢谢...问题出在我身上...实际上倒数第二个字符是空字符。所以它没有返回任何东西..现在它工作正常..谢谢..
  • @Jocheved 欢迎您! :)
【解决方案2】:

这里首先你必须从最后一个字符','中找出索引。 在最后一个字符“,”之后。 之后你可以找出它们之间的子字符串。

String string = "Hai,Hello,How,are,you";
        int lastIndex,secondLastIndex;
        lastIndex=string.lastIndexOf(',');
        secondLastIndex=string.lastIndexOf(',',lastIndex-1);
        System.out.println(string.substring(secondLastIndex+1,lastIndex));

试试吧。

【讨论】:

    【解决方案3】:

    我不确定,但我是这样认为的。

    如果你的代码如下,那就不行了。

    String string = "Hai,Hello,How,are,";
    String[] bits = string.split(",");
     ↓
    bits[]…{ "Hai","Hello","How","are" }
    bits[bits.length-2]…"How"
    

    此代码有效。

    String string = "Hai,Hello,How,are,";
    String[] bits = string.split(",", -1);
     ↓
    bits[]…{ "Hai","Hello","How","are","" }
    bits[bits.length-2]…"are"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-21
      • 2019-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多