开发者社区> 问答> 正文

关于把以一个字符串拆分开,分别放入int[]和String[]数组

将A1B2C3D4E5F6G7H8拆分开来,并分别存入int[]和String[]数组,得到的结果为[1,2,3,4,5,6,7,8]和[A,B,C,D,E,F,G,H],

 
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class Test03 {
 
    public static void main(String[] args) {
        int number[];
        String letter[];
        String str = "A1B2C3D4E5F6G7H8";
        Matcher m = Pattern.compile("\\d").matcher(str);
        Matcher d = Pattern.compile("\\D").matcher(str);
        while(m.find()){
            System.out.print(m.group());
//          char data[]   = (m.group()).toCharArray();
//          for (int i = 0; i < data.length; i++) {
//              System.out.print(data[i]);
        }
        System.out.println();
        while(d.find()){
            System.out.print(d.group());
        }
    }
}

我写代码运行结果是:

12345678
ABCDEFGH

然后怎么把它们分别插入数组,我调试了一下午.没调试出来.只好来这求解答拉.这个问题可能菜鸟.但对于水平跟我相当的有帮助

展开
收起
爵霸 2016-05-31 15:08:43 5266 0
2 条回答
写回答
取消 提交回答
  • 你好,我是Java初学者,这个题是疯狂Java讲义的吧。刚好我做了这道,贴上来参考一下吧。

    import java.util.Arrays;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class Test280 {
        public static void main(String[] args) {
            String str = "A1B2C3D4E5F6G7H8";
            int[] inttest = new int[8];
            String[] strtest =new String[8];
    //        数组下标索引,初始为0
            int i=0;
    
            Matcher m1 = Pattern.compile("\\d").matcher(str);
            Matcher m2 = Pattern.compile("\\D").matcher(str);
    //        把符合的字符存入数组
            while (m1.find()) {
                inttest[i++]= Integer.parseInt(m1.group());
            }
    //        数组下标重置为0
            i=0;
    //        把符合的字符存入数组
            while (m2.find()) {
                strtest[i++]= m2.group();
            }
    //        使用Array类的toString方法输出数组
            System.out.println(Arrays.toString(inttest));
            System.out.println(Arrays.toString(strtest));
    
        }
    }
    2019-07-17 19:22:00
    赞同 1 展开评论 打赏
  • import java.util.regex.Matcher;
     import java.util.regex.Pattern;
    
    
     public class Test03 {
    
    
     public static void main(String[] args) {
     int number[] = new int[8];
     String letter[] = new String[8];
     String str = "A1B2C3D4E5F6G7H8";
     Matcher m = Pattern.compile("\\d").matcher(str);
     Matcher d = Pattern.compile("\\D").matcher(str);
    
    
     String s = "";
     while (d.find()) {
     s += d.group();
     // 将字符串拆分成字符数组
     }
     // 将字符串拆分成字符数组
     letter = s.split("");
     System.out.println();
    
    
     String s1 = "";
     while (m.find()) {
     s1 += m.group();
     }
     // 将字符串s1拆分后给数组number赋值
    
    
     // 将字符串拆分成字符数组
     String[] str1 = s1.split("");
    
    
     // 给number数组赋值
     for (int j = 0; j < str1.length; j++) {
     number[j] = Integer.parseInt(str1[j]);
     }
    
    
     // 输出字符串数组
     for (String string : letter) {
     System.out.print(string + " ");
     }
     System.out.println();
     // 输出整形数组
     for (int num : number) {
     // 上面定义的number长度为
     System.out.print(num + " ");
     }
    
    
     }
     }
    2019-07-17 19:22:00
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多