java 字符串截取:截取"\n"第N次出现之前的字符串

像这样的字符串XXXXXX\nXXXXXXXX\nxxxxxxx\n........................,然后我要截取第12次\n之前出现的字符串,要怎么写?... 像这样的字符串 XXXXXX \n XXXXXXXX \n xxxxxxx \n........................,然后我要截取第12次\n之前出现的字符串,要怎么写? 展开
 我来答
fuhaiwei
2014-07-08 · TA获得超过3409个赞
知道大有可为答主
回答量:974
采纳率:75%
帮助的人:1396万
展开全部
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);
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yc446833448
2014-07-08 · 超过50用户采纳过TA的回答
知道答主
回答量:152
采纳率:0%
帮助的人:81.8万
展开全部
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个字符串
追问
12到24个呢
追答
i=11;i<24;i++
for循环的条件改成这样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f77eb01
2014-07-08 · TA获得超过407个赞
知道小有建树答主
回答量:615
采纳率:100%
帮助的人:423万
展开全部
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;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无厘头吧
2014-07-08 · TA获得超过571个赞
知道小有建树答主
回答量:531
采纳率:62%
帮助的人:156万
展开全部
分割后,取索引12之前的所有 然后拼接
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
国王Zero
2014-07-08 · 超过10用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:23.8万
展开全部
果断用正则表达式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式