在java里我用循环去截取一段字符串,但是和正常的效果不一样,请高手指导!

方式一:publicclassStringTest{publicstaticvoidmain(String[]args){Strings="asdfghjkl";Syst... 方式一:public class StringTest {
public static void main(String[] args) {
String s="asdfghjkl";
System.out.println(s.substring(2));
}
}

方式2:
public class StringTest {
public static void main(String[] args) {
String s="asdfghjkl";
for(int j=0;j<s.length();j++){
System.out.println(s.substring(j,s.length()));
}
}
}
我知道substring()是截取第一个参数到第二个参数的长度字符串,但是用循环时却是先截取长的,但是我的j是增加的啊!!!
展开
 我来答
牙刷的悲伤
2012-12-16 · TA获得超过1467个赞
知道小有建树答主
回答量:341
采纳率:0%
帮助的人:394万
展开全部
第二个方法是不是报错,因为你的字符串s一直是以前的那个s,没有改变呢。。
在for循环里这样改就行了:
s=s.substring(j,s.length());
System.out.println(s.substring(j,s.length()));

这样就可以一直截取后几个字符了。。
希望可以帮助你,如果还有问题请追问,谢谢采纳。。
更多追问追答
追问
大哥,你先运行一下看看呢。
追答
失误。。。你这个代码就相当于这个System.out.println(s.substring(j));
因为你的s不变,s的长度也就不变,永远是从j的位置到字符结束,肯定是从最长的开始啊,因为是从0的位置开始的。。。。不知道你还想问什么?
希望可以帮助你,如果还有问题请追问,谢谢采纳。。
逆风独行zhe
2012-12-16 · 超过15用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:37.4万
展开全部
String substring(int beginIndex, int endIndex)
s.substring(j,s.length())
循环j是增加的,但是s.length()却不变,你可以这么理解,这个方法获取的是
字符串[从s字符串的第j个字符到s.length()个字符]
所以随着j的增加,你获得的字符串就会变短
追问
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Stale331x
2012-12-16 · TA获得超过1299个赞
知道小有建树答主
回答量:1276
采纳率:33%
帮助的人:836万
展开全部
String substring(int beginIndex, int endIndex)
返回一个新字符串,它是此字符串的一个子字符串

你理解错误了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bd9006
2012-12-16 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.6亿
展开全部
第2个参数,是要截取的数量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
opaskiss
2012-12-16 · 超过26用户采纳过TA的回答
知道答主
回答量:103
采纳率:100%
帮助的人:65.4万
展开全部
0到总数不是先截取最长的先嘛?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式