java获取字符位置

假如有一个字符串 “abc,def,ghi,jkl”
用indexOf(",")能够查找到第一个“,”号所在的位置 但如果我要查找第二个和第三个的“,”的位置要如何实现呢

给你三个方法。都能找出其位置并打印出结果
// 1.使用正则表达式方法
Pattern p = Pattern.compile(",");
String s1 = "abc,,de,f,g,hi,jkl";
Matcher m = p.matcher(s1);
// 将所有匹配的","的位置都打印出来,并统计次数
int cnt1 = 0;
while (m.find()) {
cnt1++;
System.out.println(m.start());
}
System.out.println("使用第1次方法检测出的,出现次数: " + cnt1);

// 2.使用String自带的indexOf方法
String s2 = s1;
int pos = 0;
int cnt2 = 0;
while (pos < s2.length()) {
pos = s2.indexOf(',', pos);
if (pos == -1) {
break;
} else {
cnt2++;
System.out.println(pos);
pos++;
}
}
System.out.println("使用第2次方法检测出的,出现次数: " + cnt2);

// 3.取出字符串String的每个字符逐一比较
String s3 = s1;
int cnt3 = 0;
for (int i = 0; i < s3.length(); i++) {
if (s3.charAt(i) == ',') {
cnt3++;
System.out.println(i);
}
}
System.out.println("使用第3次方法检测出的,出现次数: " + cnt3);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-07-28

Java中String提供的常用操作函数:char charAt(int index)。返回指定索引处的 char 值。

具体操作:

条件是:

(index = str1.indexOf(str2, index + 1)) >= 0 str1.indexOf(str2, index + 1) 查出str2从左到右第一次出现的位置, index = str1.indexOf(str2, index + 1) 将位置赋值给index变量。

下次循环开始时,因为str1.indexOf(str2, index + 1)第二个参数是index+1,所以从str2第一次出现的位置的下一位开始再找出匹配的字符串。

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。

本回答被网友采纳
第2个回答  推荐于2017-09-25
.indexOf(',',从第几个位置再找!);

indexOf(","); 得到的是4,
indexOf(',',4);得到的就是8
下一个就是indexOf(',',8)本回答被提问者采纳
第3个回答  推荐于2017-10-15
Java中String提供的常用操作函数:
char charAt(int index)
返回指定索引处的 char 值。
相似回答