为什么结果是这样? String zmx="88888(dasdsadsad)"; System.out.print(zmx.indexOf("(")); System.out.print(zmx.substring(1, zmx.indexOf("(")));为什么结果会是58888? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你认为应该是什么?结果完全正确System.out.print(zmx.indexOf("(")); // 输出了5System.out.print(zmx.substring(1,zmx.indexOf("("))); // 输出了4个8 System.out.print(zmx.indexOf("(")); 这句返回的是5;System.out.print(zmx.substring(1, zmx.indexOf("(")));这句返回的是8888substring(int beginIndex,int endIndex)返回的新字符串从指定的beginIndex处开始(也就是第二个8),直到索引endIndex-1处结束 5 是第二行运行的结果。8888 是第三行运行的结果。合起来就是58888如果你想每行结果各占独立一行,把print改成println即可。如果你想第三行的执行结果是88888,代码改成System.out.print(zmx.substring(0, zmx.indexOf("("))); 第一个输出:“(”在zmx中的索引点5上(第1个字符索引是0),所以输出“5”。第二个输出:从索引1开始取(也就是第二个8开始)直到索引5为止(但不包括索引5上的这个字符),因此输出“8888”。拼在一起就是“58888”。 给java2000_net 他老人家回答的最快! eclipse 目录显示问题 对Hibernate性能优化的认识 回车响应事件 有没有人有jspsmartupload.jar这个包 如何用drawString把文字打印在图片的中央? 深入理解 System.out.println() 的问题。 数据库记录集的问题请高手指点指点 关于this的小问题~~ 在JList中怎样加一个隐藏值呀!各位大侠请帮忙呀! WINNT目录下的ServicePackFiles能删掉么 大家帮我看看这个代码片段的问题是什么?在考哪个知识点 一个代码问题,请解释!谢谢!
结果完全正确
System.out.print(zmx.indexOf("(")); // 输出了5
System.out.print(zmx.substring(1,zmx.indexOf("("))); // 输出了4个8
这句返回的是5;
System.out.print(zmx.substring(1, zmx.indexOf("(")));
这句返回的是8888
substring(int beginIndex,int endIndex)
返回的新字符串从指定的beginIndex处开始(也就是第二个8),直到索引endIndex-1处结束
8888 是第三行运行的结果。
合起来就是58888如果你想每行结果各占独立一行,把print改成println即可。如果你想第三行的执行结果是88888,代码改成System.out.print(zmx.substring(0, zmx.indexOf("(")));
第二个输出:从索引1开始取(也就是第二个8开始)直到索引5为止(但不包括索引5上的这个字符),因此输出“8888”。拼在一起就是“58888”。