String t1 = "aaaa123(333)1234";
        String[] t2 = t1.split("\\(([0-9]*)\\)");
        for(int i = 0 ; i < t2.length ; i++){
         System.out.println(t2[i]);
        }
如果t2长度为2的话t2[1]应该是你要的结果。

解决方案 »

  1.   

    int begin=str.indexOf('(')+1;
    str.substring(begin,str.indexOf(')',begin);
      

  2.   

    String regex = "\\([0-9]+\\)";
      

  3.   

    对不起,以上的都对,但我现在有新的要求了:
    从表达式:表达式存在两种情况①22我的asd(1308888) ,其中在括号前面或许是不确定长的数字,或许是不确定长的汉字,或许是不确定长的大小写英文字母,也或许是他们任意的组合,括号里面肯定是数字,但长度不确定②没有括号和前面的其他任何数字字符 
    如:
    22我的asd(数字)               
    我的(数字)      
    12121(数字)       
    数字            
    我要得到上各式中的数字
      

  4.   

    1.如果(数字)后面没有其他字符,像阿根的说的那样去做,把纯数字当作特殊情况就是了2.如果(数字)后面还有其他字符,最好把正则表达式和string函数结合起来用先根据regex得到(数字)(把纯数字当作特殊情况)
    然后去掉(和)