我有一个字符串“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);
我没有得到倒数第二个字。
答案 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"