• 注册
  • 赞助本站

    • 微信
    • 支付宝
    • Q Q

    感谢一直支持本站的所有人!

    • 查看作者
    • 《算法第四版》课后练习题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()方法

    • 1
    • 0
    • 1.3k
    • 0
      1122
    • 单栏布局 侧栏位置: