各位 
我想获取
284_300_16_331_34_363_379_395_    字符串中最后一个数(395(也有可能是两位数))
用java怎么获取
字符串长度不定  谢了!!

解决方案 »

  1.   


    String s = "284_300_16_331_34_363_379_395_";
    String[] ss= s.split("_");
    System.out.println(ss[ss.length - 1]);
      

  2.   

    用string[] a = a.split('_')将字符串变为数组,然后取数组最后一个元素就可以了
      

  3.   


    public static void main(String[] args) throws IOException {
    String str="284_300_16_331_34_363_379_395";
    String temp;
    if("_".equals(str.substring(str.length()-1,str.length()))){
    temp=str.substring(0,str.lastIndexOf("_"));
    }else{
    temp=str;
    }
    System.out.println(temp.substring(temp.lastIndexOf("_")+1,temp.length()));
    }
      

  4.   

    -1的单纯的split(“-”)最后面空格是不会进来的
    split(“-”,-1)这样的话就是-2了后面有个空字符
      

  5.   

    String s = "284_300_16_331_34_363_379_39_";
    String[] ss= s.split("_");
    System.out.println(ss[ss.length - 1]);
      

  6.   

    呃lz说这个字符串长度不固定,也就是说如果很长的话用“_”分割会产生一个长度很长的数组。这样会不会太占用资源。如果这样实现的话 大家看有没有什么问题:
    Pattern pattern = Pattern.compile("[0-9]*$");
    Matcher matcher = pattern.matcher("234_1231_234_34_34_345_45_34");\
    if(matcher.find())
        System.out.println(matcher.group());
      

  7.   

    s.split("_");这个方法能够分割字符串,而且忽略_,所以能够达到你的目的
      

  8.   


            String s ="284_300_16_331_34_363_379_395_";
    String s1=s;
    if(s.lastIndexOf("_")==s.length()-1){
    s1 =s.substring(0,s.length()-1);
    }
    String last =s1.substring(s1.lastIndexOf("_")+1);
    System.out.println(last);
      

  9.   


      String _s = "284_300_16_331_34_363_379_395_";
      String _s0 = _s.substring(0, _s.length-1);
      int _last_index = _s0.lastIndexOf("_");
      String _result = _s0.substring(_last_index+1);不知道这个效率如何?
      

  10.   

    Pattern pattern = Pattern.compile("[0-9]{2,3}$");
    Matcher matcher = pattern.matcher("234_1231_234_34_34_345_45_34");
    if(matcher.find())
      System.out.println(matcher.group());
      

  11.   

    哎。。现在赚个分真难啊。。
    用String的split函数,都已经有这么多人贴出代码了。。
      

  12.   

    String str="284_300_16_331_34_363_379_395_";
    String[] s=str.split("_");
    System.out.println(s[s.length-1]);
      

  13.   

    //这是楼上各位的,都很强大
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Split5 {
    public static void main(String args[]) { String s2 = "284_300_16_331_34_363_379_395_";
    String[] ss = s2.split("_");
    System.out.println(ss[ss.length - 1]); //
    String str = "284_300_16_331_34_363_379_395";
    String temp;
    if ("_".equals(str.substring(str.length() - 1, str.length()))) {
    temp = str.substring(0, str.lastIndexOf("_"));
    } else {
    temp = str;
    }
    System.out.println(temp.substring(temp.lastIndexOf("_") + 1, temp
    .length()));

    //
    String s ="284_300_16_331_34_363_379_395_";
        String s1=s;
        if(s.lastIndexOf("_")==s.length()-1){
            s1 =s.substring(0,s.length()-1);
        }
        String last =s1.substring(s1.lastIndexOf("_")+1);
        System.out.println(last);     
        //
        String sq = "284_300_16_331_34_363_379_395_";
        String _s0 = sq.substring(0, sq.length()-1);
        int _last_index = _s0.lastIndexOf("_");
        String _result = _s0.substring(_last_index+1);
        System.out.println(_result);
        //
        Pattern pattern = Pattern.compile("[0-9]{2,3}$");
        Matcher matcher = pattern.matcher("234_1231_234_34_34_345_45_34");
        if(matcher.find())
          System.out.println(matcher.group()); }}
      

  14.   

    用string[] a = a.split('_')将字符串变为数组,然后取数组最后一个元素就可以了
      

  15.   

    public class SplitString { public static void main(String[] args) {
    String s = "284_300_16_331_34_363_379_39s5_";
    String[] ss= s.split("_");
    System.out.println(ss[ss.length - 1]);
    }
    }
      

  16.   

    public class SplitString { public static void main(String[] args) {
    String s = "284_300_16_331_34_363_379_39s5_";
    String[] ss= s.split("_");
    System.out.println(ss[ss.length - 1]);
    }
    }
      

  17.   

    public static void main(String [] args){ String str="284_300_16_331_34_363_379_395_";
    cutOut(str);
    cutOut2(str);
    cutOut3(str);

    }
    /**
     * 方法一
     * @param str
     */
    private static void cutOut(String str) {
    String [] arr=str.split("_");
    int i=0;
    for (String s : arr) {
    System.out.println(i+": "+s);
    i++;
    }
    System.out.println(arr[arr.length-1]);
    }
    /**
     * 方法二
     * @param str
     */
    private static void cutOut2(String str) {
    String s=str;
    //判断最后一个是 _
    int index=s.lastIndexOf("_");
    if(index==str.length()-1){
    s=s.substring(0,index);
    }
    System.out.println(s);
    System.out.println("方法二:"+(s.substring(s.lastIndexOf("_")+1,s.length())));
    }
    /**
     * 方法三
     * @param str
     */
    private static void cutOut3(String str){
    Pattern pattern=Pattern.compile("([0-9]{2,3})");
    Matcher matcher=pattern.matcher(str);
    while(matcher.find()){
    System.out.println(matcher.group());
    }
    }建议使用方法二
      

  18.   

    String类里有这个方法。。你可以去查查
      

  19.   


    public static void main(String [] args){
    String str="284_300_16_331_34_363_379_395_";
    cutOut(str);
    cutOut2(str);
    cutOut3(str);

    }
    /**
     * 方法一
     * @param str
     */
    private static void cutOut(String str) {
    String [] arr=str.split("_");
    System.out.println(arr[arr.length-1]);
    }
    /**
     * 方法二
     * @param str
     */
    private static void cutOut2(String str) {
    String s=str;
    //判断最后一个是 _
    int index=s.lastIndexOf("_");
    if(index==str.length()-1){
    s=s.substring(0,index);
    }
    System.out.println(s);
    System.out.println("方法二:"+(s.substring(s.lastIndexOf("_")+1,s.length())));
    }
    /**
     * 方法三
     * @param str
     */
    private static void cutOut3(String str){

    Pattern pattern=Pattern.compile("^(.*_)(\\d+)(_?)$");
    Matcher matcher=pattern.matcher(str);
    if(matcher.matches()){
    System.out.println(matcher.group(2));
    }
    else
    {
    System.out.println("Not match!");
    }
    }
      

  20.   


    public class Test {
    public static void main(String[] args) {
    String s = "284_300_16_331_34_363_379_395_";
    String[] str = s.split("_");
    System.out.println(str[str.length-1]);
    }
    }测试通过