Ive*_*rie 6 java string lastindexof
我有一个字符串,我需要在这个字符串中找到最后一个字母数字字符.无论字符串中的最后一个字母数字字符是什么,我都想要那个索引.对于
text="Hello World!- "
Run Code Online (Sandbox Code Playgroud)
输出将是'd'的索引
text="Hello02, "
Run Code Online (Sandbox Code Playgroud)
输出将是'2'的索引.我知道我可以用一种"蛮力"的方式来做,检查每个字母和每个数字并找到最高指数,但我确信有一种更简洁的方法来做,但我找不到它.
Njo*_*jol 13
这将按预期工作,它甚至可以在几乎所有Unicode字符和数字上工作:
public static final int lastAlphaNumeric(String s) {
for (int i = s.length() - 1; i >= 0; i--) {
char c = s.charAt(i);
if (Character.isLetter(c) || Character.isDigit(c))
return i;
}
return -1; // no alphanumeric character at all
}
Run Code Online (Sandbox Code Playgroud)
它也比其他答案快得多;)
使用正则表达式来完成繁重的工作。
要获取最后一个字母数字字符的索引(-1如果字符串中没有字母数字):
int index = str.replaceAll("[^a-zA-Z0-9]*$", "").length() - 1;
Run Code Online (Sandbox Code Playgroud)
要获取角色本身:
String last = str.replaceAll("[^a-zA-Z0-9]*$", "").replaceAll(".(?!$)", "");
Run Code Online (Sandbox Code Playgroud)