zoukankan      html  css  js  c++  java
  • java编程思想第四版第十三章字符串 习题

    1. fas
    2. 第二题
      package net.mindview.strings;
      
      import java.util.ArrayList;
      import java.util.List;
      
      /**
       * 无限循环
       */
      public class InfiniteRecursion {
          public InfiniteRecursion(){
              
          }
          @Override
          public String toString() {
              return " InfiniteRecursion address" + super.toString() + "
      ";
          }
          public static void main(String[] args) {
              List<InfiniteRecursion> list = new ArrayList<InfiniteRecursion>();
              for(int i=0; i<5; i++){
                  list.add(new InfiniteRecursion());
              }
              System.out.println(list);
          }
      }
    3. fa
    4. 第四题
      package net.mindview.strings;
      
      import java.util.Formatter;
      
      public class Receipt {
          private double total = 0;
          private Formatter f = new Formatter(System.out);
          public final int ITEM_WIDTH = 15;
          public final int QTY_WIDTH = 5;
          public final int PRICE_WIDTH = 10;
          public final int PRICISION_FLOAT_WIDHT = 2;
          public final int PRICISION_String_WIDHT = 15;
          public final String TITLE_FORMAT = "%-" + ITEM_WIDTH + "s %" + QTY_WIDTH
                  + "s %" + PRICE_WIDTH + "s
      ";
          public final String PRICE_FORMAT = "%-" + ITEM_WIDTH + "."
                  + PRICISION_String_WIDHT + "s %" + QTY_WIDTH + "d %" + PRICE_WIDTH
                  + "." + PRICISION_FLOAT_WIDHT + "f
      "; 
          public final String TOTAL_FORMAT = "%-" + ITEM_WIDTH + "s %" + QTY_WIDTH
                  + "s %" + PRICE_WIDTH + "." + PRICISION_FLOAT_WIDHT + "f
      "; 
          
          //打印标题
          public void printTitle(){
              /*
               * 含义: 格式化字符串串以%开头
               * -: 表示左对齐
               * 15: 15表示宽度
               * s:表示数据的类型是String
               * .2f:表示浮点数保留的小数位数
               * .15s:表示字符串的长度最多15个字符 
               */
              f.format(TITLE_FORMAT, "Item", "Qty", "Price");
              f.format(TITLE_FORMAT, "----", "---", "-----");
          }
          
          //正文的内容
          public void print(String name, int qty, double price){
              f.format(PRICE_FORMAT, name, qty, price);
              total += price;
          }
          
          //总价
          public void printTotal(){
              f.format(TOTAL_FORMAT, "Tax", "", total*0.06);
              f.format(TITLE_FORMAT, "", "", "-----");
              f.format(TOTAL_FORMAT, "Total", "", total*1.06);
          }
          
          public static void main(String[] args) {
              Receipt receipt = new Receipt();
              receipt.printTitle();
              receipt.print("Jack`s Magic Beans", 4, 4.25);
              receipt.print("Princess Peas", 3, 5.1);
              receipt.print("Three Bears Porridge", 1, 14.29);
              receipt.printTotal();
          }
      
      }

      运行结果:

      Item              Qty      Price
      ----              ---      -----
      Jack`s Magic Be     4       4.25
      Princess Peas       3       5.10
      Three Bears Por     1      14.29
      Tax                         1.42
                                 -----
      Total                      25.06
    5. 第五题
      package net.mindview.strings;
      
      import java.util.Formatter;
      
      public class Receipt {
          private double total = 0;
          private Formatter f = new Formatter(System.out);
          public final int ITEM_WIDTH = 15;
          public final int QTY_WIDTH = 5;
          public final int PRICE_WIDTH = 10;
          public final int PRICISION_FLOAT_WIDHT = 2;
          public final int PRICISION_String_WIDHT = 15;
          public final String TITLE_FORMAT = "%-" + ITEM_WIDTH + "s %" + QTY_WIDTH
                  + "s %" + PRICE_WIDTH + "s
      ";
          public final String PRICE_FORMAT = "%-" + ITEM_WIDTH + "."
                  + PRICISION_String_WIDHT + "s %" + QTY_WIDTH + "d %" + PRICE_WIDTH
                  + "." + PRICISION_FLOAT_WIDHT + "f
      "; 
          public final String TOTAL_FORMAT = "%-" + ITEM_WIDTH + "s %" + QTY_WIDTH
                  + "s %" + PRICE_WIDTH + "." + PRICISION_FLOAT_WIDHT + "f
      "; 
          
          //打印标题
          public void printTitle(){
              /*
               * 含义: 格式化字符串串以%开头
               * -: 表示左对齐
               * 15: 15表示宽度
               * s:表示数据的类型是String
               * .2f:表示浮点数保留的小数位数
               * .15s:表示字符串的长度最多15个字符 
               */
              f.format(TITLE_FORMAT, "Item", "Qty", "Price");
              f.format(TITLE_FORMAT, "----", "---", "-----");
          }
          
          //正文的内容
          public void print(String name, int qty, double price){
              f.format(PRICE_FORMAT, name, qty, price);
              total += price;
          }
          
          //总价
          public void printTotal(){
              f.format(TOTAL_FORMAT, "Tax", "", total*0.06);
              f.format(TITLE_FORMAT, "", "", "-----");
              f.format(TOTAL_FORMAT, "Total", "", total*1.06);
          }
          
          public static void main(String[] args) {
              Receipt receipt = new Receipt();
              receipt.printTitle();
              receipt.print("Jack`s Magic Beans", 4, 4.25);
              receipt.print("Princess Peas", 3, 5.1);
              receipt.print("Three Bears Porridge", 1, 14.29);
              receipt.printTotal();
          }
      
      }

      运行结果:

      Item              Qty      Price
      ----              ---      -----
      Jack`s Magic Be     4       4.25
      Princess Peas       3       5.10
      Three Bears Por     1      14.29
      Tax                         1.42
                                 -----
      Total                      25.06
    6. afd
    7. 第七题:
      package net.mindview.strings.test7;
      
      public class Test7 {
      
          public static void main(String[] args) {
              //两种写法都可以
              String regex = "^[A-Z].*\.$";
              String regex1 = "\p{Upper}.*\.$";
              String str = "D.";
              String str1 = "Dfasdfasfasfdasfdasfasfasdf.";
              String str2 = "Dfasdfasfasfdasfdasfasfasdf.E";
              System.out.println(str.matches(regex));
              System.out.println(str1.matches(regex));
              System.out.println(str2.matches(regex));
              System.out.println(str.matches(regex1));
              System.out.println(str1.matches(regex1));
              System.out.println(str2.matches(regex1));
          }
      }
      运行结果:
      true
      true
      false
      true
      true
      false
    8. 第八题
      package net.mindview.strings;
      
      import java.util.Arrays;
      
      public class Splitting {
      
          public static String knights = "Then, when you have found the shrubbery, you must cut down the mightiest tree in the forest... with... a herring!";
      
          public static void split(String regex){
              System.out.println(Arrays.toString(knights.split(regex)));
          }
          public static void main(String[] args) {
              //表示的时按照空格分割字符串
              //运行结果:[Then,, when, you, have, found, the, shrubbery,, you, must, cut, down, the, mightiest, tree, in, the, forest..., with..., a, herring!]
              split(" ");
              
              //表示按照非单次字符分割字符串--这里的非单次字符是空格和,
              //运行结果:[Then, when, you, have, found, the, shrubbery, you, must, cut, down, the, mightiest, tree, in, the, forest, with, a, herring]
              split("\W+");
              //这个表示:费单次字符之前带n的地方进行分割字符串 这里的分割符是n空格和n,
              //运行结果:[The, whe, you have found the shrubbery, you must cut dow, the mightiest tree i, the forest... with... a herring!]
              split("n\W+");
          }
      
      }
      package net.mindview.strings.test8;
      
      import net.mindview.strings.Splitting;
      
      public class Test8 {
          
          public static void main(String[] args) {
              String regex = "the|you";
              Splitting.split(regex);
          }
      }
    9. 第九题
      package net.mindview.strings.test9;
      
      import net.mindview.strings.Splitting;
      
      public class Test9 {
          public static void main(String[] args) {
              String regex = "A|E|I|O|U|a|e|i|o|u";
              //通过嵌入式标志表达式  (?i) 也可以启用不区分大小写的匹配。
              String regex1 = "(?i)a|e|i|o|u";
              //[abc] 表示a或b或c
              String regex2 = "(?i)[aeiou]";
              System.out.println(Splitting.knights.replaceAll(regex, "_"));
              System.out.println(Splitting.knights.replaceAll(regex1, "_"));
              System.out.println(Splitting.knights.replaceAll(regex2, "_"));
          }
      }
    10. 第十题
      package net.mindview.strings.test10;
      
      import java.util.regex.Matcher;
      import java.util.regex.Pattern;
      
      public class Test10 {
          public static void main(String[] args) {
              String str = "Java now has regular expressions";
              
              for(String arg: args){
                  Pattern p = Pattern.compile(arg);
                  Matcher m = p.matcher(str);
                  while(m.find()){
                      System.out.println("Match "" + m.group() +"" at positions " + m.start() + "-" + (m.end()-1) );
                  }
                  System.out.println("
      ");
              }
              
          }
      }

      输入参数:

      ^Java
      Breg.*
      n.ws+h(a|i)s
      s?
      s*
      s+
      s{4}
      s{1}.
      s{0,3}

      输出结果

      Match "Java" at positions 0-3
      
      
      
      
      Match "now has" at positions 5-11
      
      
      Match "" at positions 0--1
      Match "" at positions 1-0
      Match "" at positions 2-1
      Match "" at positions 3-2
      Match "" at positions 4-3
      Match "" at positions 5-4
      Match "" at positions 6-5
      Match "" at positions 7-6
      Match "" at positions 8-7
      Match "" at positions 9-8
      Match "" at positions 10-9
      Match "s" at positions 11-11
      Match "" at positions 12-11
      Match "" at positions 13-12
      Match "" at positions 14-13
      Match "" at positions 15-14
      Match "" at positions 16-15
      Match "" at positions 17-16
      Match "" at positions 18-17
      Match "" at positions 19-18
      Match "" at positions 20-19
      Match "" at positions 21-20
      Match "" at positions 22-21
      Match "" at positions 23-22
      Match "" at positions 24-23
      Match "" at positions 25-24
      Match "s" at positions 26-26
      Match "s" at positions 27-27
      Match "" at positions 28-27
      Match "" at positions 29-28
      Match "" at positions 30-29
      Match "s" at positions 31-31
      Match "" at positions 32-31
      
      
      
      
      Match "s" at positions 11-11
      Match "ss" at positions 26-27
      Match "s" at positions 31-31
      
      
      
      
      Match "s " at positions 11-12
      Match "ss" at positions 26-27
      
      
      Match "" at positions 0--1
      Match "" at positions 1-0
      Match "" at positions 2-1
      Match "" at positions 3-2
      Match "" at positions 4-3
      Match "" at positions 5-4
      Match "" at positions 6-5
      Match "" at positions 7-6
      Match "" at positions 8-7
      Match "" at positions 9-8
      Match "" at positions 10-9
      Match "s" at positions 11-11
      Match "" at positions 12-11
      Match "" at positions 13-12
      Match "" at positions 14-13
      Match "" at positions 15-14
      Match "" at positions 16-15
      Match "" at positions 17-16
      Match "" at positions 18-17
      Match "" at positions 19-18
      Match "" at positions 20-19
      Match "" at positions 21-20
      Match "" at positions 22-21
      Match "" at positions 23-22
      Match "" at positions 24-23
      Match "" at positions 25-24
      Match "ss" at positions 26-27
      Match "" at positions 28-27
      Match "" at positions 29-28
      Match "" at positions 30-29
      Match "s" at positions 31-31
      Match "" at positions 32-31
    11. 第十一题
      package net.mindview.strings.test11;
      
      import java.util.regex.Matcher;
      import java.util.regex.Pattern;
      
      public class Test11 {
          public static void main(String[] args) {
              Pattern p = Pattern.compile("(?i)((^[aeiou])|(\s+[aeiou]))\w+?[aeiou]\b");
              Matcher m = p.matcher("Arline ate eight apples and " +
      "one orange while Anita hadn't any");
              
              while(m.find()){
                  System.out.println("Match "" + m.group() +
                          "" at positions " + m.start() + "-" +
                          (m.end() - 1));
              }
          }
      }    

      运行结果:

      Match "Arline" at positions 0-5
      Match " ate" at positions 6-9
      Match " one" at positions 27-30
      Match " orange" at positions 31-37
      Match " Anita" at positions 44-49
    12. sfa
    13. f
    14. a
    15. fda
    16. sdf
    17. af
    18. a
    19. fd
    20. af
    21. as
    22. fd
    23. asfd
    24. af
    25. da
    26. f
    27. df
    28. as
    29. fa
    30. sf
    31. asf
    32. a
    33. sf
    34. af
    35. asf
  • 相关阅读:
    改造vant日期选择
    css3元素垂直居中
    npm综合
    (转)网页加水印方法
    Mac下IDEA自带MAVEN插件的全局环境配置
    隐藏注册控件窗口
    High performance optimization and acceleration for randomWalk, deepwalk, node2vec (Python)
    How to add conda env into jupyter notebook installed by pip
    The Power of WordNet and How to Use It in Python
    背单词app测评,2018年
  • 原文地址:https://www.cnblogs.com/ITPower/p/8658056.html
Copyright © 2011-2022 走看看