java截取右子串

来源:百度知道 编辑:UC知道 时间:2024/06/23 21:14:33
idrem="东北人所有的都是活雷锋";
int remno=idrem.indexOf("所");
String realid=idrem.substring(0, remno);
String rem=idrem.substring(remno, idrem.length()-1);
我要将idrem以第一个“所”字为界,左面的给realid,右面的给rem
即结果realid="东北人" rem="有的都是活雷锋"
以上代码怎么不对呢?谁帮我修改下.

具体如下:
public String substring(int beginIndex)
返回一个新的字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。
例如:
"unhappy".substring(2) returns "happy"
"Harbison".substring(3) returns "bison"
"emptiness".substring(9) returns "" (an empty string)
参数:
beginIndex - 开始处的索引(包括)。
返回:
指定的子字符串。
抛出:
IndexOutOfBoundsException - 如果 beginIndex 为负或大于此 String 对象的长度。

例如一个字符串 s = "0123456"

用substring(0,3) 截取的开始索引是0,也就是从s[0]即字符"0"开始截取。结束索引是3,s[3]即字符"3"的位置,但是字符"3"本身并不会被包含在截取后生成的字符串中,所以substring(0,3)实际得到的是"012"而不是"0123"

你对照着仔细看看你写的代码。按照你那样截取,realid是可以正确截取到的,但是rem会把“所”字也截取到,并且最后一个字“锋”不会被截取到

String left = idrem.subString(0,realid) ; //左边的
String right = idrem.subString(realid,idrem.length()-1); //右边的

其实你也不用问别人。JAVA中很多东西都是自己琢磨的更好一些。
比如上边你感觉那不对你就在上边使用system.out.print();打印出来看下,到底是哪除的错!再改,慢慢就