• 中文
    • English
  • 注册
  • 查看作者
  • 《算法第四版》课后练习题1.2.15答案

    习题1.2.15

    文件输入。基于 String 的 split() 方法实现 In 中的静态方法readInts() 。

    要点分析

    1.  split

    split() 方法根据匹配给定的正则表达式来拆分字符串,这里给出几个常用的方法[1] 

    public class Test {
        public static void main(String args[]) {
            String str = new String("A-B-c-D");
            String[] s = str.split("-");
            System.out.println("- 分隔符返回值 :" );
            for (int i = 0; i < s.length; i++) {
                System.out.println(s[i]);
            }
            System.out.println();
    
            String[] s2 = str.split("-",2);
            System.out.println("- 分隔符设置分割份数返回值 :" );
            for (int i = 0; i < s2.length; i++) {
                System.out.println(s2[i]);
            }
    
            System.out.println();
            String str2 = new String("A.B.c.D");
    //        String[] s3 = str2.split("\\.");
            String[] s3 = str2.split("[.]"); //和上面的两种方法都可以
            System.out.println("转义字符返回值 :" );
            for (int i = 0; i < s3.length; i++) {
                System.out.println(s3[i]);
            }
    
            System.out.println();
            String str3 = new String("A-B C.D");
            String[] s4= str3.split("\\.|-|\\s");// \\s表示 空格,回车,换行等空白符
            System.out.println("多个分隔符返回值 :" );
            for (int i = 0; i < s4.length; i++) {
                System.out.println(s4[i]);
            }
        }
    }
    
    
    输出:
    - 分隔符返回值 :
    A
    B
    c
    D
    
    - 分隔符设置分割份数返回值 :
    A
    B-c-D
    
    转义字符返回值 :
    A
    B
    c
    D
    
    多个分隔符返回值 :
    A
    B
    C
    D

    2.  readInts()

    In中的readInts()方法在课本的第51页,该方法用于读取一个int类型的值。本题对应课本的第50页。

    官方答案

    public static int[] readInts(String name) {
        In in = new In(name); //从文件或者网站中创建输入流
        String input = in.readAll();//5读取并返回此输入流的其余部分存入字符串中。
        //利用正则表达式拆分字符串,并存入words数组中
        String[] words = input.split("\\s+"); \\s表示 空格,回车,换行等空白符,+号表示一个或多个的意思
        int[] ints = new int[words.length];
        for (int i = 0; i < words.length; i++)
            ints[i] = Integer.parseInt(words[i]); //将拆分的字符串转换为数字并存入数组
        return ints;
    }

    参考资料

    [1] 菜鸟教程:Java split()方法

  • 0
  • 1
  • 0
  • 3.5k
  • 海贼王

    请登录之后再进行评论

    登录
  • 0
    King0
    1122
  • 单栏布局 侧栏位置: