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() + "\n"; } 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\n"; public final String PRICE_FORMAT = "%-" + ITEM_WIDTH + "." + PRICISION_String_WIDHT + "s %" + QTY_WIDTH + "d %" + PRICE_WIDTH + "." + PRICISION_FLOAT_WIDHT + "f\n"; public final String TOTAL_FORMAT = "%-" + ITEM_WIDTH + "s %" + QTY_WIDTH + "s %" + PRICE_WIDTH + "." + PRICISION_FLOAT_WIDHT + "f\n"; //打印标题 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\n"; public final String PRICE_FORMAT = "%-" + ITEM_WIDTH + "." + PRICISION_String_WIDHT + "s %" + QTY_WIDTH + "d %" + PRICE_WIDTH + "." + PRICISION_FLOAT_WIDHT + "f\n"; public final String TOTAL_FORMAT = "%-" + ITEM_WIDTH + "s %" + QTY_WIDTH + "s %" + PRICE_WIDTH + "." + PRICISION_FLOAT_WIDHT + "f\n"; //打印标题 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("\n"); } } }
输入参数:
^Java \Breg.* n.w\s+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
36.