import java.util.StringTokenizer;public class StringTokenizerTest{
public static void main(String args[]){
StringTokenizer st = new StringTokenizer("abc def 123 456 789");
while( st.hasMoreTokens()){
String token = st.nextToken();
System.out.println(token);
}
System.out.println(st.countTokens());
}
}你可以用nextToken()也可以用nextElement(),前者返回字符传,后者返回对象。

解决方案 »

  1.   

    use classes in regex, for exampleimport java.util.regex.*;public class Splitter {
        public static void main(String[] args) throws Exception {
            // Create a pattern to match breaks
            Pattern p = Pattern.compile("\\s+");
            // Split input with the pattern
    String str = "abc  def  123  456  789";
            String[] result = p.split(str);
            for (int i=0; i<result.length; i++)
                System.out.println(result[i]);
        }
    }
      

  2.   

    String str=“abc  def  123  456  789”;
    String nstr=str.substring(17, 3);
    String nstr1=str.substring(22,3);
    System.out.println(nstr);
    System.out.println(nstr1);
      

  3.   

    对不起, 应该是:nstr=str.substring(15,17);
    nstr1=str.substring(20,22);
      

  4.   

    我想你应该知道其中为什么提取 456 789,如果没有一点规律,那就没有任何意义了。如果有,就用StringTokenlizer来实现,很容易的,楼上的几位好象都给出来了。