String idrem="东北人所有的都是活雷锋"; 
int remno=idrem.indexOf("所"); 
String realid=idrem.substring(0, remno); 
String rem=idrem.substring(remno, idrem.length()-1); 
我要将idrem以第一个“所”字为界,左面的给realid,右面的给rem 
即结果realid="东北人" rem="有的都是活雷锋" 
以上代码怎么不对呢?谁帮我修改下.

解决方案 »

  1.   

    public class ThreadLife {
    public static void main(String[] args) {
    String idrem="东北人所有的都是活雷锋";
    int remno=idrem.indexOf("所");
    String realid=idrem.substring(0, remno);
    String rem=idrem.substring(remno+1, idrem.length()-1); 
    System.out.println(realid);
    System.out.println(rem);
    }
    }结果:
    东北人
    有的都是活雷结贴给分...JF 啊..
      

  2.   

    !!!支持!!!或者用split方法也行
      

  3.   

    其实用下面这两行就行了,我总觉得java的substring怪怪的,或许因为它是半封闭的,不知道为什么不做成封闭的,真怪。
            String realid=idrem.substring(0, remno);
            String rem=idrem.substring(remno+1); 
      

  4.   

    1楼的有错!!
    应该是class T
    {
    public static void main(String[] args)
    {
    String idrem = "东北人所有的都是活雷锋";
    int remno = idrem.indexOf("所");
    String realid = idrem.substring(0, remno);
    String rem = idrem.substring(remno + 1, idrem.length());
    System.out.println(realid);
    System.out.println(rem);
    }}
    substring
    public String substring(int beginIndex,
                            int endIndex)返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。 
    示例:  "hamburger".substring(4, 8) returns "urge"
     "smiles".substring(1, 5) returns "mile"
     
    参数:
    beginIndex - 起始索引(包括)。
    endIndex - 结束索引(不包括)。 
    返回:
    指定的子字符串。 
    抛出: 
    IndexOutOfBoundsException - 如果 beginIndex 为负,或 endIndex 大于此 String 对象的长度,或 beginIndex 大于 endIndex。
      

  5.   

    但是String idrem="东北人所";
    int remno=idrem.indexOf("所");
    String realid=idrem.substring(0, remno); 
    String rem=idrem.substring(remno+1); 
    就会出错啊。我要求idrem不管是什么字符串都能实现我要的功能啊。
    是不是非得加上if语句呢?
      

  6.   


    public class StringUseDemo1 {
    /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
      String idrem = "东北人所有的都是活雷锋";
      int remno = idrem.indexOf("所");
      String realid = idrem.substring(0, remno);
      String rem = idrem.substring(remno + 1, idrem.length());
      System.out.println(realid);
      System.out.println(rem);
    }
    }LZ的“String rem=idrem.substring(remno, idrem.length()-1);”显然你还没弄清楚idrem.substring(remno, idrem.length()-1)中"remno"和"idrem.length()-1",哪个该取哪个不该取的问题!首先它们都是表示下标,比如s.substring(0,5),这个时候它截取的子串是0到5的位置,但不包括5;竟然这个理解了,那你所谓的问题也就解决了!
      

  7.   


    String idrem="东北人所有的都是活雷锋"; 
    int remno=idrem.indexOf("所"); 
    String realid=idrem.substring(0, remno); 
    String rem=idrem.substring(remno + 1); 
    System.out.println(realid);
    System.out.println(rem);
      

  8.   


    String[] s = idrem.split("所");