拆分一个字符串,得到倒数第二个字

时间:2016-04-04 12:11:35

标签: java string split

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

我需要的是我需要的第二个字是“是”

    SELECT b.C1,
           b.C2,
           max(value) value 
      FROM a 
INNER JOIN b ON (DECODE (a.C2, 'All', b.C2,a.C2) = b.C2 AND DECODE (a.C1, 'All', b.C1,a.C1) = b.C1)
  GROUP BY b.C1,
           b.C2

但是当我这样做的时候:

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

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

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

3 个答案:

答案 0 :(得分:5)

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

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

以下是更新的代码段:

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

答案 1 :(得分:3)

首先,您需要找到最后一个字符','的索引。 在第二个字符“,”之后。 之后,您可以找到它们之间的子字符串。

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));

尝试它会起作用。

答案 2 :(得分:1)

我不确定,但我想是这样的。

如果您的代码如下,则无效。

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"