java 字符串截取:截取"\n"第N次出现之前的字符串
像这样的字符串XXXXXX\nXXXXXXXX\nxxxxxxx\n........................,然后我要截取第12次\n之前出现的字符串,要怎么写?...
像这样的字符串 XXXXXX \n XXXXXXXX \n xxxxxxx \n........................,然后我要截取第12次\n之前出现的字符串,要怎么写?
展开
5个回答
展开全部
public class Test {
public static void main(String[] args) {
String str = "123\n456\n789\n012";
String str2 = getStr(str, 2);//截取第二次,如果是12次,就改成12
System.out.println(str2);
}
private static String getStr(String str, int n) {
int i = 0;
int s = 0;
while (i++ < n) {
s = str.indexOf("\n", s + 1);
if (s == -1) {
return str;
}
}
return str.substring(0, s);
}
}
追问
如果是第12到24次呢?
追答
public class Test {
public static void main(String[] args) {
String str = "123\n456\n789\n012";
String str2 = getText(str, 1, 3);
System.out.println(str2);
}
//getText(str, 1, 3)从1到3,不包含3
private static String getText(String str, int st, int ed) {
int n = 0;
int pos = -1;
while (n < st) {
pos = str.indexOf("\n", pos + 1);
if (pos == -1) {
return "";
}
n++;
}
int st_pos = pos;
while (n < ed) {
pos = str.indexOf("\n", pos + 1);
if (pos == -1) {
return str.substring(pos + 1);
}
n++;
}
return str.substring(st_pos + 1, pos);
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string [] str="XXXXXX \n XXXXXXXX \n xxxxxxx \n.......".split("\n");
string a="";
for(int i=0;i<12;i++){
a+=str[i];
}
system.out.println( a);
a就是前12个字符串
string a="";
for(int i=0;i<12;i++){
a+=str[i];
}
system.out.println( a);
a就是前12个字符串
追问
12到24个呢
追答
i=11;i<24;i++
for循环的条件改成这样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public String getSubString(String str,int index) {
if(index<=0)
return null;
String result=null;
for(int i=0,j=0;i<index;i++)
if((i+1)==index)
result = str.subString(0,j);
else
j=str.indexOf("\\n");
return result;
}
if(index<=0)
return null;
String result=null;
for(int i=0,j=0;i<index;i++)
if((i+1)==index)
result = str.subString(0,j);
else
j=str.indexOf("\\n");
return result;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
分割后,取索引12之前的所有 然后拼接
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
果断用正则表达式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询