我要获取一个字符串中某个标点第二次出现的位置
先找到"."第二次出现的位置,然后截取后面的字符。
有没有简单明了的方法? 展开
获取方法:
//根据第一个点的位置 获得第二个点的位置
index=str.indexOf(".", index+1)
//根据第二个点的位置,截取 字符串。得到结果 result
String result=str.substring(index)
//输出结果
System.out.println(result)
字符串的形式理论
设 Σ 是叫做字母表的非空有限集合。Σ 的元素叫做"符号"或"字符"。在 Σ 上的字符串(或字)是来自 Σ 的任何有限序列。例如,如果 Σ = {0, 1},则 0101 是在 Σ 之上的字符串。
字符串的长度是在字符串中字符的数目(序列的长度),它可以是任何非负整数。"空串"是在 Σ 上的唯一的长度为 0 的字符串,并被指示为 ε 或 λ。
在 Σ 上的所有长度为 n 的字符串的集合指示为 Σn。例如,如果 Σ = {0, 1} 则 Σ2 = {00, 01, 10, 11}。注意 Σ0 = {ε} 对于任何字母表 Σ。
在 Σ 上的所有任何长度的字符串的集合是 Σ 的Kleene闭包并被指示为 Σ*。 依据Σn, 。例如,如果 Σ = {0, 1} 则 Σ* = {ε, 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, …}。尽管 Σ* 自身是可数无限的,Σ* 的所有元素都有有限长度。
在 Σ 上一个字符串的集合(就是 Σ* 的任何子集)被称为在 Σ 上的形式语言。例如,如果 Σ = {0, 1},则带有偶数个零的字符串的集合({ε, 1, 00, 11, 001, 010, 100, 111, 0000, 0011, 0101, 0110, 1001, 1010, 1100, 1111, …})是在 Σ 上的形式语言。
public static void main(String[] args) {
String str ="232ljsfsf.sdfl23.ljsdfsdfsdfss.23423.sdfsdfsfd";
//获得第一个点的位置
int index=str.indexOf(".");
System.out.println(index);
//根据第一个点的位置 获得第二个点的位置
index=str.indexOf(".", index+1);
//根据第二个点的位置,截取 字符串。得到结果 result
String result=str.substring(index);
//输出结果
System.out.println(result);
}
}
int secondPoint = StringUtils.ordinalIndexOf(str, ".", 2);
String result = str.substring(secondPoint+1);
System.out.println(result);