怎么判断一个字符在字符串的第几个位置

bluetata
云计算领域优质创作者
博客专家认证
2012-03-20 09:33:49
比如 String str = "aaaaa,bbbb,cccc,dddd,eeee,ffff,dddd";

想截取从开始到第三个逗号之间的内容
...全文
1255 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
dntg007 2012-03-20
  • 打赏
  • 举报
回复
int index = str.indexOf(str.indexOf(str,indexOf(",") + 1, ",") + 1, ",");
newStr = str.subString(0, index);
nmyangym 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 acesidonu 的回复:]

引用 8 楼 cai5 的回复:

String[] arr = str.split(",");

String newStr = arr[0]+","+arr[1]+ ","+arr[2];

就行啦

++
[/Quote]
+++
Acesidonu 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cai5 的回复:]

String[] arr = str.split(",");

String newStr = arr[0]+","+arr[1]+ ","+arr[2];

就行啦
[/Quote]
++
弘石 2012-03-20
  • 打赏
  • 举报
回复
newStr = "";
nPos := 1;
for (int i = 0; i <3; i++) {
nPos = str.indexOf(",", nPos);
if( nPos<=0)
return;
}
newStr = str.subString( 0, nPos -1);
艳沐石 2012-03-20
  • 打赏
  • 举报
回复

String ss = "111,222,333,444,555";
int i = 0;
int si = -1;
int begin = 0;
while (i++ < 3 && (si = ss.indexOf(',',begin))!=-1) {
begin = si + 1;
}
System.out.println(ss.substring(0, si));
五哥 2012-03-20
  • 打赏
  • 举报
回复
String[] arr = str.split(",");

String newStr = arr[0]+","+arr[1]+ ","+arr[2];

就行啦


京郊-金手指 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 kk_124 的回复:]
引用 4 楼 xiaolong82008 的回复:

String[] arr = str.split(",");

String newStr = arr[0]+arr[1]+arr[2];


这样会少了逗号
[/Quote]

补充逗号

String newStr = "";
for (int i = 0; i <3; i++) {
newStr += str.substring(0,str.indexOf(","))+",";
str = str.substring(str.indexOf(",")+1);
}
System.out.println(newStr.substring(0,newStr.lastIndexOf(",")));
京郊-金手指 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xiaolong82008 的回复:]
String[] arr = str.split(",");

String newStr = arr[0]+arr[1]+arr[2];
[/Quote]

下面这样好点
String newStr = "";
for (int i = 0; i <3; i++) {
newStr += str.substring(0,str.indexOf(","));
str = str.substring(str.indexOf(",")+1);
}


System.out.println(newStr);
普凡 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xiaolong82008 的回复:]

String[] arr = str.split(",");

String newStr = arr[0]+arr[1]+arr[2];
[/Quote]

这样会少了逗号
京郊-金手指 2012-03-20
  • 打赏
  • 举报
回复
String[] arr = str.split(",");

String newStr = arr[0]+arr[1]+arr[2];
星腾 2012-03-20
  • 打赏
  • 举报
回复
String str1=str.sunString(0,16);
普凡 2012-03-20
  • 打赏
  • 举报
回复
就依本题而言:
str.substring(0,str.indexOf(",",12));
a395885670 2012-03-20
  • 打赏
  • 举报
回复
用subString(0,16)
bluetata 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xiaolong82008 的回复:]

引用 4 楼 xiaolong82008 的回复:
String[] arr = str.split(",");

String newStr = arr[0]+arr[1]+arr[2];


下面这样好点
String newStr = "";
for (int i = 0; i <3; i++) {
newStr += str.substring(0,str.indexO……
[/Quote]

感谢你一直关注本帖.但是从方法效率上操作.9楼和十楼略胜一筹
非常感谢.
bluetata 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 youthon 的回复:]

newStr = "";
nPos := 1;
for (int i = 0; i <3; i++) {
nPos = str.indexOf(",", nPos);
if( nPos<=0)
return;
}
newStr = str.subString( 0, nPos -1);
[/Quote]

非常感谢,你的方法同楼上的一样可以
bluetata 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yanmushi 的回复:]

Java code

String ss = "111,222,333,444,555";
int i = 0;
int si = -1;
int begin = 0;
while (i++ < 3 && (si = ss.indexOf(',',begin))!=-1) {
begin = si + 1;
}
System.out.println(ss.substri……
[/Quote]

非常感谢你的回答

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧