java的.lastIndexOf
时间: 2023-10-12 19:49:59 浏览: 104
lastIndexOf是Java中的一个字符串方法,用于查找指定字符串在另一个字符串中最后一次出现的位置。
例如,如果我们有一个字符串"hello world",我们可以使用lastIndexOf方法来查找字符串"o"在该字符串中最后一次出现的位置。代码如下:
String str = "hello world";
int lastIndex = str.lastIndexOf("o");
System.out.println(lastIndex);
输出结果为:7
这意味着字符串"o"在字符串"hello world"中最后一次出现的位置是第8个字符(从开始计数)。如果指定的字符串没有在原字符串中出现,则返回-1。
相关问题
mysql实现Java中string.lastIndexOf函数
在Java中,String类的lastIndexOf方法用于返回指定字符或字符串在当前字符串中最后一次出现的索引位置。要在MySQL中实现类似的功能,可以使用SUBSTRING_INDEX函数结合REVERSE函数来实现。SUBSTRING_INDEX函数用于返回字符串中指定分隔符之前或之后的子字符串,而REVERSE函数用于将字符串反转。下面是一个示例查询语句:
SELECT LENGTH(column_name) - LENGTH(SUBSTRING_INDEX(REVERSE(column_name), 'search_string', 1)) + 1 AS last_index FROM table_name;
在这个查询中,column_name是要搜索的字符串列,search_string是要查找的字符串。通过将字符串反转并使用SUBSTRING_INDEX函数找到最后一次出现的位置,然后通过计算字符串长度来获取最后一次出现的索引位置。
请注意,这只是一种实现方式,具体的查询语句可能会根据你的表结构和需求而有所不同。
public class d2 { public static void main(String[] args) { String s1=new String("pb_java_00p_T5"); String s2=s1.substring(s1.lastIndexOf(s1.lastIndexOf("_")); System.out.println("s2="+s2); } }
这段 Java 代码的运行结果会抛出 StringIndexOutOfBoundsException 异常。原因是在 s1.lastIndexOf("_") 返回的索引值为 9 时,调用 s1.lastIndexOf(s1.lastIndexOf("_")) 会得到 s1.charAt(9) 的 ASCII 码值 48('0'的 ASCII 码),而这个值大于了字符串 s1 的长度,因此导致数组越界异常。正确的代码应该是:
```
public class d2 {
public static void main(String[] args) {
String s1 = new String("pb_java_00p_T5");
String s2 = s1.substring(s1.lastIndexOf("_") + 1); // 修改此处
System.out.println("s2 = " + s2);
}
}
```
这样就可以得到正确的输出结果:s2 = T5。
阅读全文