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

时间:2023-01-03 11:15:41
比如 String str = "aaaaa,bbbb,cccc,dddd,eeee,ffff,dddd";

想截取从开始到第三个逗号之间的内容

16 个解决方案

#1


用subString(0,16)

#2


就依本题而言:
str.substring(0,str.indexOf(",",12));

#3


String str1=str.sunString(0,16);

#4


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

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

#5


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

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


这样会少了逗号

#6


引用 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.indexOf(","));
str = str.substring(str.indexOf(",")+1);
}


System.out.println(newStr);

#7


引用 5 楼 kk_124 的回复:
引用 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.indexOf(","))+",";
str = str.substring(str.indexOf(",")+1);
}
System.out.println(newStr.substring(0,newStr.lastIndexOf(",")));

#8


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

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

就行啦


#9



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));

#10


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

#11


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

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

就行啦

++

#12


引用 11 楼 acesidonu 的回复:
引用 8 楼 cai5 的回复:

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

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

就行啦

++

+++

#13


int index = str.indexOf(str.indexOf(str,indexOf(",") + 1, ",") + 1, ",");
newStr = str.subString(0, index);

#14


引用 9 楼 yanmushi 的回复:
Java code

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


非常感谢你的回答

#15


引用 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);


非常感谢,你的方法同楼上的一样可以

#16


引用 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……


感谢你一直关注本帖.但是从方法效率上操作.9楼和十楼略胜一筹
非常感谢.

#1


用subString(0,16)

#2


就依本题而言:
str.substring(0,str.indexOf(",",12));

#3


String str1=str.sunString(0,16);

#4


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

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

#5


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

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


这样会少了逗号

#6


引用 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.indexOf(","));
str = str.substring(str.indexOf(",")+1);
}


System.out.println(newStr);

#7


引用 5 楼 kk_124 的回复:
引用 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.indexOf(","))+",";
str = str.substring(str.indexOf(",")+1);
}
System.out.println(newStr.substring(0,newStr.lastIndexOf(",")));

#8


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

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

就行啦


#9



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));

#10


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

#11


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

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

就行啦

++

#12


引用 11 楼 acesidonu 的回复:
引用 8 楼 cai5 的回复:

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

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

就行啦

++

+++

#13


int index = str.indexOf(str.indexOf(str,indexOf(",") + 1, ",") + 1, ",");
newStr = str.subString(0, index);

#14


引用 9 楼 yanmushi 的回复:
Java code

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


非常感谢你的回答

#15


引用 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);


非常感谢,你的方法同楼上的一样可以

#16


引用 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……


感谢你一直关注本帖.但是从方法效率上操作.9楼和十楼略胜一筹
非常感谢.