jerry,98|tom,99|jack,10|anne,100
  将只包含字母的单词放到String数组中,将数字放到int数组中。
public class ChaiFen {
   public static void main(String args[]){
   String a="jerry,98|tom,99|jack,10|anne,100";
   Pattern p=Pattern.compile("([a-zA-Z]+)\\W{1}([0-9]+)\\W{0,1}");
   Matcher ma=p.matcher(a);
   System.out.println(ma.matches());
    ma.reset();
         while(ma.find()){
   System.out.println(ma.group(1));//不知道怎么把这个放到数组里面??? }
   ma.reset();
  while(ma.find()){
  System.out.println(ma.group(2)); 
}
}谁能帮我修改一下,把那个放到那个数组里面啊

解决方案 »

  1.   


    public static void main(String[] args) {
     String a= "jerry,98|tom,99|jack,10|anne,100 ";
     Matcher m = Pattern.compile("[a-zA-Z]+").matcher(a);
     List<String> list = new ArrayList<String>();
     while(m.find()){
     list.add(m.group());
     }
     String[] strs = list.toArray(new String[list.size()]);
     for(String s : strs){
     System.out.println(s);
     }
    }
      

  2.   

    至少先定义两个数组:
    int size = a.split("|").length;
    String[] words = new String[size];
    int[] nums = new int[size];循环里面是:
    int i=0;
    while(ma.find()){ 
      System.out.println(ma.group(1) + " " + ma.group(2));
      words[i] = ma.group(1);
      nums[i] = Integer.parseInt(ma.group(2));
      i++;
    }
      

  3.   

    楼主你的正则后面有个空格注意到没有啊。。给的字符串要匹配的话后面应该也有空格啊:
    String a= "jerry,98|tom,99|jack,10|anne,100 ";
    ->
    String   a= "jerry,98 |tom,99 |jack,10 |anne,100 ";//code
    public   class   ChaiFen   {
          public   static   void   main(String   args[]){
          String   a= "jerry,98 |tom,99 |jack,10 |anne,100 ";
          Pattern   p=Pattern.compile( "([a-zA-Z]+)\\W{1}([0-9]+)\\W{0,1} ");
          Matcher   ma=p.matcher(a);
          System.out.println(ma.matches());
          ma.reset();
          String[] arr=new String[4];
          int i=0;
          while(ma.find()){
              //System.out.println(ma.group(1));//不知道怎么把这个放到数组里面???
              arr[i]=new String();
              arr[i]=ma.group(1);
              i++;
          }
          ma.reset();
          String[] num=new String[4];
          int j=0;
          while(ma.find()){
              //System.out.println(ma.group(2));  
              num[j]=new String();
              num[j]=ma.group(2);
              j++;
    }
          System.out.print("The Strings:");
          for(String str:arr){
           System.out.print(str+"  ");
          }
          System.out.println();
          System.out.print("The Nums:");
          for(String str:num){
           System.out.print(str+"  ");
          }
    }
    }
    打印结果是:
    false
    The Strings:jerry  tom  jack  anne  
    The Nums:98  99  10  100 
      

  4.   

    2楼上不是有么。。
    int size = a.split("|").length;
    String[] words = new String[size];
    int[] nums = new int[size];
      

  5.   

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    public   class   ChaiFen   {
          public   static   void   main(String   args[]){
          String   a= "jerry,98 |tom,99 |jack,10 |anne,100 ";
          Pattern   p=Pattern.compile( "([a-zA-Z]+)\\W{1}([0-9]+)\\W{0,1} ");
          Matcher   ma=p.matcher(a);
          int length=a.split(" ").length;
          System.out.println(length);
          System.out.println(ma.matches());
          ma.reset();
          String[] arr=new String[length];
          int i=0;
          while(ma.find()){
              //System.out.println(ma.group(1));//不知道怎么把这个放到数组里面???
              arr[i]=new String();
              arr[i]=ma.group(1);
              i++;
          }
          ma.reset();
          
          String[] num=new String[length];
          int j=0;
          while(ma.find()){
              //System.out.println(ma.group(2));  
              num[j]=new String();
              num[j]=ma.group(2);
              j++;
    }
          System.out.print("The Strings:");
          for(String str:arr){
           System.out.print(str+"  ");
          }
          System.out.println();
          System.out.print("The Nums:");
          for(String str:num){
           System.out.print(str+"  ");
          }
    }
    }