java 忽略大小写然后确定并打印输出每一个小写元音字母在整个字

扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
求JAVA code: 26个字母里随机出现10个字母,其中至少含有两个元音字母(元音字母:a,e, i,o,u)
赤果果A0108
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
不知道你这10个字母中是否能出现重复的字母! import java.util.Rimport java.util.ArrayLpublic class RandomChar{ public char[] Vowel = {'a', 'e', 'i', 'o', 'u'};
public String[] Consonant = {"b","c","d","f","g","h","j","k","l","m","n","p","q","r","s","t","v","w","x","y","z"};
public ArrayList Rusult = new ArrayList();
public RandomChar() { }
public void getChar() {
ArrayList VowelAL =
new ArrayList();
ArrayList ConsonantAL =
new ArrayList();
//VowelAL = genarate(Vowel[]);
//ConsonantAL = genarate(Consonant[]);
//下面两个for循环主要输初始化arrayList
for(int i = 0; i < 21; i++ )
ConsonantAL.add( Consonant[i] );
for(int j = 0; j < 5; j++ )
VowelAL.add( Vowel[j] );
int randNum01;
int randNum02;
int randNum03;
int randNum04;
int rangeNum01 = 21;
int rangeNum02 = 5;
int ConsonantNum = 8;
int VowelNum = 2;//这个是代表输出8个辅音的同时输出元音的个数
for(int i = 0; i< ConsonantN i++)
Random ran = new Random(System.currentTimeMillis()+i);
randNum01 = ran.nextInt(rangeNum01);
randNum02 = ran.nextInt(2);
//randNum02主要是来控制是否输出元音,
//这个数也是随机的因此在结果集中的位置就是随机的了
if(randNum02 == 1 && VowelNum !=0)
randNum03 = ran.nextInt(rangeNum02);
System.out.print(VowelAL.get(randNum03));
Rusult.add(VowelAL.get(randNum03));
VowelAL.remove(randNum03);//通过remove语句将输出过的字符删除
= VowelNum - 1;//元音已输出个数减一
rangeNum02 = rangeNum02 - 1;//同样随机数的范围减一
System.out.print(ConsonantAL.get(randNum01));
Rusult.add(ConsonantAL.get(randNum01));
ConsonantAL.remove(randNum01);//通过remove语句将输出过的字符删除
rangeNum01 = rangeNum01 -1;//同样随机数的范围减一
//判断是否已经输出2个字符,没有则在后面补充输入;这样的情况同样是随机的
if (VowelNum != 0)
for (int k = 0; k < VowelN k++)
Random ran = new Random(System.currentTimeMillis());
randNum04 = ran.nextInt(rangeNum02);
System.out.print(VowelAL.get(randNum04));
Rusult.add(VowelAL.get(randNum04));
VowelAL.remove(randNum04);
rangeNum02 = rangeNum02 -1;
public void PrintRes() {
for(int i = 0; i < 10 ; i++)
System.out.println(Rusult.get(i));
public static void main(String str[]) {
RandomChar rand = new RandomChar();
System.out.print("下面是getChar函数中的print输出的字符:");
rand.getChar();
System.out.println();
System.out.println("下面是PrintRes函数中通过存储的Arraylist输出的字符:");
rand.PrintRes();
为您推荐:
没要求元音字符的位置,所以就简单的这样处理了import java.util.Rclass Test3 { private String yuanyin = "aeiou"; private String zimu = yuanyin + "bcdfghjklmnpqrstvwxyz"; public String getString(...
扫描下载二维码拒绝访问 | www. | 百度云加速
请打开cookies.
此网站 (www.) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(3ae992db53e243bf-ua98).
重新安装浏览器,或使用别的浏览器&&&&&&&&&&&&&&&&&&
posts - 112,comments - 263,trackbacks - 0
随笔分类(159)
随笔档案(112)
文章分类(2)
文章档案(2)
Comprehensive
积分与排名
阅读排行榜
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& com.book.chap13.import java.util.ArrayLimport java.util.Dimport java.util.L/** *//** * *ArrayList.toString *&p&遍历ArrayList中所包含的对象,调用每个元素上的toString方法 * *&#64;author landon *&#64;version 1.0.0
下午6:20:50 *&#64;since JDK 1.6.0_30 * */public class ArrayListDisplay{&&& public static void main(Stringargs)&&& {&&&&&&& List&Date& list = new ArrayList&Date&(10);&&&&&&& &&&&&&& for(int i = 0;i & 5;i++)&&&&&&& {&&&&&&&&&&& list.add(new Date());&&&&&&& }&&&&&&& &&&&&&& System.out.println(list);&&& }}&package&com.book.chap13./**&*//**&*&*String字符串连接&*&p&"+"&/p&&*&p&Bytecode&Outline&*&*&#64;author&landon&*&#64;version&1.0.0&&上午9:31:05&*&#64;since&JDK&1.6.0_30&*&*/public&class&Concatenation{&&&&public&static&void&main(Stringargs)&&&&{&&&&&&&&String&name&=&"landon";&&&&&&&&String&s&=&name&+&"kobe"&+&23&+&"tracy";&&&&&&&&&&&&&&&&System.out.println(s);&&&&}}&package&com.book.chap13.import&java.util.regex.Mimport&java.util.regex.P/**&*//**&*&*Matcher.find,用来在CharSequence中查找多个匹配&*&*&#64;author&landon&*&#64;since&1.6.0_35&*&#64;version&1.0.0&&*&*/public&class&Finding{&&&&public&static&void&main(String[]&args)&&&&{&&&&&&&&//&\\w+&&&&&&&&Matcher&matcher&=&pile("\\w+").matcher("The&2002&mvp&Tracy&Mcgrady");&&&&&&&&while(matcher.find())&&&&&&&&{&&&&&&&&&&&&System.out.println(matcher.group()&+&"&");&&&&&&&&}&&&&&&&&&&&&&&&&int&i&=&0;&&&&&&&&//i表示字符串中字符的位置,注意包括空格&&&&&&&&//输出:The&he&e&2&02&2&mvp&mvp&vp&p&Tracy&Tracy&racy&acy&cy&y&Mcgrady&Mcgrady&cgrady&grady&rady&ady&dy&y&&&&&&&&&while(matcher.find(i))&&&&&&&&{&&&&&&&&&&&&System.out.print(matcher.group()&+&"&");&&&&&&&&&&&&i++;&&&&&&&&}&&&&}}&package&com.book.chap13.import&java.util.regex.Mimport&java.util.regex.P/**&*//**&*&*正则表达式(Groups)&*Matcher提供的获取与组相关的信息&*&*&#64;author&landon&*&#64;since&1.6.0_35&*&#64;version&1.0.0&&*&*/public&class&Groups{&&&&public&static&final&String&POEM&=&&&&&&&&&&&&&"I'm&tracy&mcgrady.\n"&+&&&&&&&&&&&&&"You&are&kobe&bryant.\n"&+&&&&&&&&&&&&"Hi,Happy&Elements.\n"&+&&&&&&&&&&&&&"Hi,Linekong.\n"&+&&&&&&&&&&&&&"The&Phoenix&unity&3D&project.\n";&&&&&&&&public&static&void&main(Stringargs)&&&&{&&&&&&&&//由任意数目的非空格字符(\S+)及随后的任意数目的空格字符(\s+)组成,目的是每行的最后3个单词,每行最后以$结束&&&&&&&&//正常情况下,将$与整个输入序列的末端相匹配,我们一定要显示地告知正则表达式注意输入序列中的换行符,这可由序列开头的模式标记(?m)来完成&&&&&&&&Matcher&matcher&=&pile("(?m)(\\S+)\\s+((\\S+)\\s+(\\S+))$").matcher(POEM);&&&&&&&&while(matcher.find())&&&&&&&&{&&&&&&&&&&&&for(int&j&=&0;j&&=&matcher.groupCount();j++)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&System.out.print("["&+&matcher.group(j)&+&"]"&+&"&");&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&System.out.println();&&&&&&&&}&&&&}}&package&com.book.chap13./**&*//**&*&*16进制格式查看工具&*&*&#64;author&landon&&*&#64;since&1.6.0_35&*&#64;version&1.0.0&&*&*/public&class&Hex{&&&&public&static&String&format(byte[]&data)&&&&{&&&&&&&&StringBuilder&builder&=&new&StringBuilder();&&&&&&&&int&n&=&0;&&&&&&&&&&&&&&&&for(byte&b&:&data)&&&&&&&&{&&&&&&&&&&&&if(n&%&16&==&0)//0,16,32&&&&&&&&&&&&{&&&&&&&&&&&&&&&&builder.append(String.format("%05x:&",&n));//16进制输出n&&&&如输出00000:&&&&00010:&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&builder.append(String.format("%02x&",&b));&&&&&&&&&&&&n++;&&&&&&&&&&&&&&&&&&&&&&&&if(n&%&16&==&0)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&builder.append("\n");&&&&&&&&&&&&}&&&&&&&&}&&&&&&&&&&&&&&&&return&builder.toString();&&&&}&&&&&&&&public&static&void&main(Stringargs)&&&&{&&&&&&&&//输出结果&&&&0&20&40&7f&&&&&一个byte即8位,而类似7f则也为8位,2个宽度即可表示一个byte&&&&&&&&//如果是%5x&%2x,则输出结果为&&&&0:&&0&10&20&40&7f&&&&&&&&&byte[]&data&=&new&byte[]{0,16,32,64,127};&&&&&&&&System.out.println(format(data));&&&&}}&package&com.book.chap13./**&*//**&*&*String的不可变性&*&*&#64;author&landon&&*&#64;version&1.0.0&&下午5:40:20&*&#64;since&JDK&1.6.0_30&*&*/public&class&Immutable{&&&&//参数为字符串String,不会改变参数,而是返回一个新的String&&&&public&static&String&upcase(String&s)&&&&{&&&&&&&&return&s.toUpperCase();&&&&}&&&&&&&&public&static&void&main(Stringargs)&&&&{&&&&&&&&String&q&=&"landon";&&&&&&&&System.out.println(q);&&&&&&&&&&&&&&&&System.out.println(upcase(q));&&&&&&&&&&&&&&&&//q是不可变的&&&&&&&&System.out.println(q);&&&&}}&package&com.book.chap13.import&java.util.ArrayLimport&java.util.L/**&*//**&*&*无限递归&*&pre&&*&&&&public&String&toString()&&&&{&&&&&&&&return&"landon"&+&this&+&"\n";&&&&}&*&/pre&&*&p&调用this-&转为字符串会调用this.toString,导致无限递归&*&p&报错:Exception&in&thread&"main"&java.lang.StackOverflowError&*&p&调用super.toString来输出内存地址(Object.toString)&*&*&#64;author&landon&*&#64;version&1.0.0&&下午6:27:34&*&#64;since&JDK&1.6.0_30&*&*/public&class&InfiniteRecursion{&&&&//&#64;Override&&&&//会报堆栈溢出的错误&&&&/**//*public&String&toString()&&&&{&&&&&&&&return&"InfiniteRecursion&Address&"&+&this&+&"\n";&&&&}*/&&&&&&&&&#64;Override&&&&public&String&toString()&&&&{&&&&&&&&return&"InfiniteRecursion&Address&"&+&super.toString()&+&"\n";&&&&}&&&&&&&&public&static&void&main(Stringargs)&&&&{&&&&&&&&List&InfiniteRecursion&&list&=&new&ArrayList&InfiniteRecursion&();&&&&&&&&for(int&i&=&0;i&&&5;i++)&&&&&&&&{&&&&&&&&&&&&list.add(new&InfiniteRecursion());&&&&&&&&}&&&&&&&&&&&&&&&&System.out.println(list);&&&&}}&package&com.book.chap13./**&*//**&*&*String内建使用正则&*&*&p&-?\\d+&&&&&&&&&&&&可能有一个负号(或者没有),后面跟着一位或多位数字&*&p&(-|\\+)?\\d+&&&&|表示或,括号表示分组,该正则表达式表示字符串的起始字符可能是一个+,或者都没有,因为后面跟着?,&*+在正则表达式中有特殊意义,所以必须转义&*&*&#64;author&landon&*&#64;since&1.6.0_35&*&#64;version&1.0.0&&*&*/public&class&IntegerMatch{&&&&public&static&void&main(Stringargs)&&&&{&&&&&&&&System.out.println("-1234".matches("-?\\d+"));&&&&&&&&System.out.println("5678".matches("-?\\d+"));&&&&&&&&System.out.println("+111".matches("-?\\d+"));&&&&&&&&System.out.println("+911".matches("(-|\\+)?\\d+"));&&&&}}&package&com.book.chap13.import&java.util.regex.Mimport&java.util.regex.P/**&*//**&*&*Pattern的各种标记&*&*&#64;author&landon&*&#64;since&1.6.0_35&*&#64;version&1.0.0&&*&*/public&class&ReFlags{&&&&public&static&void&main(Stringargs)&&&&{&&&&&&&&Pattern&pattern&=&pile("^java",Pattern.CASE_INSENSITIVE&|&Pattern.MULTILINE);&&&&&&&&Matcher&matcher&=&pattern.matcher("java&has&regex\nJava&has&regex\n"&+&&&&&&&&&&&&&&&&"Java&has&pretty&good&regular&expressions\n"&+&&&&&&&&&&&&&&&&"Regular&expressions&are&in&Java");&&&&&&&&&&&&&&&&while(matcher.find())&&&&&&&&{&&&&&&&&&&&&//group方法只返回已匹配的部分&&&&&&&&&&&&System.out.println(matcher.group());&&&&&&&&}&&&&}}&package&com.book.chap13./**&*//**&*&*String&正则替换&*&*&#64;author&landon&*&#64;since&1.6.0_35&*&#64;version&1.0.0&&*&*/public&class&Replacing{&&&&//&"My&n..me&is&Tracy&Mcgrady,Welcome&to&"&+&"china!";&&&&private&static&String&str&=&Splitting.tmpS&&&&&&&&public&static&void&main(Stringargs)&&&&{&&&&&&&&//替换第一个匹配出现T开头,后面跟&一个或多个字母,所以Tracy被替换成了Kobe&&&&&&&&System.out.println(str.replaceFirst("T\\w+",&"Kobe"));&&&&&&&&//表示匹配两个单词的任意一个,|&表示或&&&&Mcgrady|china&&&&不要有空格,即Mcgrady&|&china,引号内有空格也会有一些问题&&&&&&&&System.out.println(str.replaceAll("Mcgrady|china",&"beijing"));&&&&}}&package&com.book.chap13.import&java.util.regex.Mimport&java.util.regex.P/**&*//**&*&*Matcher.reset-&将现有的Matcher对象应用于一个新的字符序列&*&*&#64;author&landon&*&#64;since&1.6.0_35&*&#64;version&1.0.0&&*&*/public&class&Resetting{&&&&public&static&void&main(String[]&args)&throws&Exception&&&&{&&&&&&&&Matcher&m&=&pile("[frb][aiu][gx]").matcher("fix&the&rug&with&bags");&&&&&&&&&&&&&&&&while(m.find())&&&&&&&&{&&&&&&&&&&&&System.out.print(m.group()&+&"&");&&&&&&&&}&&&&&&&&&&&&&&&&System.out.println();&&&&&&&&&&&&&&&&//&调用reset方法&&&&&&&&m.reset("fix&the&rig&with&rags");&&&&&&&&&&&&&&&&while(m.find())&&&&&&&&{&&&&&&&&&&&&System.out.print(m.group()&+&"&");&&&&&&&&}&&&&}}&package&com.book.chap13./**&*//**&*&*下面每一个正则表达式都能成功匹配字符序列"Rudolph"&*&*&#64;author&landon&*&#64;since&1.6.0_35&*&#64;version&1.0.0&&*&*/public&class&Rudolph{&&&&public&static&void&main(Stringargs)&&&&{&&&&&&&&for(String&pattern&:&new&String[]{"Rudolph","[rR]udolph","[rR][aeiou][a-z]ol.*","R.*"})&&&&&&&&{&&&&&&&&&&&&System.out.println("Rudolph".matches(pattern));&&&&&&&&}&&&&}}&package&com.book.chap13.import&java.util.S/**&*//**&*&*使用Scanner#useDelimiter(指定定界符)/#delimiter(返回定界符)方法&*&*&#64;author&landon&&*&#64;since&1.6.0_35&*&#64;version&1.0.0&&*&*/public&class&ScannerDelimiter{&&&&public&static&void&main(String[]&args)&&&&{&&&&&&&&Scanner&scanner&=&new&Scanner("1,2,3,4,5");&&&&&&&&&&&&&&&&//&使用逗号(包括逗号前后任意的空白字符)作为定界符&&&&&&&&scanner.useDelimiter("\\s*,\\s*");&&&&&&&&&&&&&&&&while(scanner.hasNextInt())&&&&&&&&{&&&&&&&&&&&&System.out.println(scanner.nextInt());&&&&&&&&}&&&&}}&package&com.book.chap13.import&java.util.Simport&java.util.regex.MatchR/**&*//**&*&*Scanner结合正则表达式扫描复杂数据&*&*&#64;author&landon&*&#64;since&1.6.0_35&*&#64;version&1.0.0&&*&*/public&class&ScannerWithGrep{&&&&public&static&void&main(String[]&args)&&&&{&&&&&&&&Scanner&scanner&=&new&Scanner("10.130.140.108&#64;27/11/2013&\n"&+&"10.130.14.119&#64;18/11/2014\n"&+&"next&log&section");&&&&&&&&&&&&&&&&//&ip&#64;date&&&&&&&&String&pattern&=&"(\\d+[.]\\d+[.]\\d+[.]\\d+)&#64;"&+&"(\\d{2}/\\d{2}/\\d{4})";&&&&&&&&&&&&&&&&while(scanner.hasNext(pattern))&&&&&&&&{&&&&&&&&&&&&scanner.next(pattern);//&找到下一个匹配该模式的输入部分&&&&&&&&&&&&&&&&&&&&&&&&MatchResult&result&=&scanner.match();//&获得匹配的结果&&&&&&&&&&&&&&&&&&&&&&&&String&ip&=&result.group(1);&&&&&&&&&&&&String&date&=&result.group(2);&&&&&&&&&&&&&&&&&&&&&&&&System.out.format("ip:%s&&&&&&&date:%s&\n",&ip,date);&&&&&&&&}&&&&}}&package&com.book.chap13./**&*//**&*&*System.out.format&*&p&System.out.printf&*&*&#64;author&landon&&*&#64;version&1.0.0&&下午10:54:27&*&#64;since&JDK&1.6.0_30&*&*/public&class&SimpleFormat{&&&&/**&*//**&&&&&*&Row1:&[5&4.2342]&&&&&&&&Row1:&[5&4.234200]&&&&&&&&&Row1:&[5&4.234200]&&&&&&&&&从输出结果上来看,还是有一定区别的。新的方式会按照占位符,如小数默认6位(精度)&&&&&*/&&&&public&static&void&main(String[]&args)&&&&{&&&&&&&&int&x&=&5;&&&&&&&&double&y&=&4.2342;&&&&&&&&&&&&&&&&//最原始的方式,System.out.println&&&&&&&&System.out.println("Row1:&["&+&x&+&"&"&+&y&+&"]");&&&&&&&&//新的方式,format&or&printf&&&&&&&&System.out.format("Row1:&[%d&%f]&\n",&x,y);&&&&&&&&System.out.printf("Row1:&[%d&%f]&\n",&x,y);&&&&}}&package&com.book.chap13.import&java.util.Aimport&java.util.regex.P/**&*//**&*&*Pattern.split&*&*&#64;author&landon&*&#64;since&1.6.0_35&*&#64;version&1.0.0&&*&*/public&class&SplitDemo{&&&&public&static&void&main(Stringargs)&&&&{&&&&&&&&String&input&=&"This!!unusual&use!!of&exclamation!!points";&&&&&&&&System.out.println(Arrays.pile("!!").split(input)));&&&&&&&&//后者限制了分割成字符串的数量&&&&&&&&System.out.println(Arrays.pile("!!").split(input,3)));&&&&}}&package&com.book.chap13.import&java.util.A/**&*//**&*&*{&#64;link&String#split(String)}&*将字符串从正则表达式匹配的地方切开&*&*&#64;author&landon&*&#64;since&1.6.0_35&*&#64;version&1.0.0&&*&*/public&class&Splitting{&&&&public&static&String&tmpSplit&=&"My&n..me&is&Tracy&Mcgrady,Welcome&to&"&+&"china!";&&&&&&&&//根据某regex切分&&&&public&static&void&spit(String&regex)&&&&{&&&&&&&&//将切换后的数组转为字符串形式&&&&&&&&System.out.println(Arrays.toString(tmpSplit.split(regex)));&&&&}&&&&&&&&/**//*&&&&&*&[My,&n..me,&is,&Tracy,&Mcgrady,Welcome,&to,&china!]&&&&&&&&[My,&n,&me,&is,&Tracy,&Mcgrady,&Welcome,&to,&china]&&&&&&&&[My&,&me&is&Tracy&Mcgrady,Welcome&to&china!]&&&&&*/&&&&public&static&void&main(Stringargs)&&&&{&&&&&&&&spit("&");//普通的字符作为正则表达式,并不包含特殊字符,按空格来划分字符串&&&&&&&&spit("\\W+");//&\W,意思是为非单词字符,如果W小写,\w,则表示一个单词字符&&&&&&&&效果是将标点字符删除&&&&&&&&spit("n\\W+");//表示字母n后面跟着一个或多个非单词字符&&&&&&&&效果是,与字符串匹配的部分,在最终结果中都不存在了&&&&}}&package&com.book.chap13.import&java.util.regex.Mimport&java.util.regex.P/**&*//**&*&*Matcher的start/end方法&*&*&#64;author&landon&*&#64;since&1.6.0_35&*&#64;version&1.0.0&&*&*/public&class&StartEnd{&&&&public&static&String&input&=&&&&&&&&&&&&&"my&name&is&tracy&landon.\n"&+&&&&&&&&&&&&"I'm&from&dlnu.\n"&+&&&&&&&&&&&&&"I&like&basketball&and&programming.\n";&&&&&&&&private&static&class&Display&&&&{&&&&&&&&private&boolean&regexPrinted&=&false;&&&&&&&&private&String&&&&&&&&&&&&&&&&&public&Display(String&regex)&&&&&&&&{&&&&&&&&&&&&this.regex&=&&&&&&&&&}&&&&&&&&&&&&&&&&void&display(String&message)&&&&&&&&{&&&&&&&&&&&&if(!regexPrinted)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&System.out.print(regex);&&&&&&&&&&&&&&&&regexPrinted&=&true;&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&System.out.println(message);&&&&&&&&}&&&&}&&&&&&&&static&void&examine(String&s,String&regex)&&&&{&&&&&&&&Display&d&=&new&Display(regex);&&&&&&&&Pattern&pattern&=&pile(regex);&&&&&&&&Matcher&matcher&=&pattern.matcher(s);&&&&&&&&&&&&&&&&while(matcher.find())&&&&&&&&{&&&&&&&&&&&&d.display("find()&"&+&matcher.group()&+&"&start&=&&"&+&matcher.start()&+&"&end&=&"&+&matcher.end());&&&&&&&&}&&&&&&&&&&&&&&&&if(matcher.lookingAt())&&&&&&&&{&&&&&&&&&&&&d.display("lookingAt()&start&=&"&+&matcher.start()&+&"&end&=&"&+&matcher.end());&&&&&&&&}&&&&&&&&&&&&&&&&if(matcher.matches())&&&&&&&&{&&&&&&&&&&&&d.display("matches()&start&=&"&+&matcher.start()&+&"&end&=&"&+&matcher.end());&&&&&&&&}&&&&}&&&&&&&&public&static&void&main(Stringargs)&&&&{&&&&&&&&for(String&in&:&input.split("\n"))&&&&&&&&{&&&&&&&&&&&&System.out.println("input&:"&+&in);&&&&&&&&&&&&&&&&&&&&&&&&for(String&regex&:&new&String[]{"\\w*acy\\w*","\\w*rom","I\\w+","like.*?"})&&&&&&&&&&&&{&&&&&&&&&&&&&&&&examine(in,&regex);&&&&&&&&&&&&}&&&&&&&&}&&&&}&&&&&&&&&&&&&&&&&&&&}&package&com.book.chap13./**&*//**&*&*String常量池和intern&*&*&#64;author&landon&&*&#64;version&1.0.0&&下午9:46:16&*&#64;since&JDK&1.6.0_30&*&*/public&class&StringPoolAndIntern{&&&&public&static&void&main(Stringargs)&&&&{&&&&&&&&//编译期声明的字符串常量&&&&&&&&String&s0&=&"landon";&&&&&&&&String&s1&=&"landon";&&&&&&&&String&s2&=&"lan"&+&"don";&&&&&&&&//两个输出结果均为true&&&&&&&&System.out.println(s0&==&s1);&&&&&&&&System.out.println(s0&==&s2);&&&&&&&&&&&&&&&&System.out.println("~~~~~~~~~");&&&&&&&&&&&&&&&&//new的,非常量&&&&&&&&String&s3&=&"kobe";&&&&&&&&String&s4&=&new&String("kobe");&&&&&&&&String&s5&=&new&String("kobe");&&&&&&&&System.out.println(s3&==&s4);&&&&&&&&&&&&&&&&//将kobe加入常量池&&&&&&&&s3.intern();&&&&&&&&//s5指向了常量池中的kobe引用&&&&&&&&s5&=&s5.intern();&&&&&&&&&&&&&&&&System.out.println(s3&==&s4);////虽然执行了s3.intern(),但它的返回值没有赋给s3&&&&&&&&System.out.println(s3&==&s4.intern());//说明s4.intern()返回的是常量池中"kobe"的引用&&&&&&&&&System.out.println(s3&==&s5);&&&&}}&package&com.book.chap13.import&java.util.Aimport&java.util.Simport&java.util.StringT/**&*//**&*&*使用StringTokenizer对比Scanner&*&*&#64;author&landon&*&#64;since&1.6.0_35&*&#64;version&1.0.0&&*&*/public&class&StringTokenizerCompare{&&&&public&static&void&main(String[]&args)&&&&{&&&&&&&&String&input&=&"I'm&tracy&landon!";&&&&&&&&&&&&&&&&//&使用StringTokenizer&&&&&&&&StringTokenizer&tokenizer&=&new&StringTokenizer(input);&&&&&&&&while(tokenizer.hasMoreElements())&&&&&&&&{&&&&&&&&&&&&System.out.print(tokenizer.nextToken()&+&"&");&&&&&&&&}&&&&&&&&&&&&&&&&System.out.println();&&&&&&&&&&&&&&&&//&使用split&&&&&&&&System.out.println(Arrays.toString(input.split("&")));&&&&&&&&&&&&&&&&//&使用Scanner&&&&&&&&Scanner&scanner&=&new&Scanner(input);&&&&&&&&while(scanner.hasNext())&&&&&&&&{&&&&&&&&&&&&System.out.print(scanner.next()&+&"&");&&&&&&&&}&&&&}}&package&com.book.chap13.import&java.util.regex.Mimport&java.util.regex.P/**&*//**&*&*Pattern/Matcher&*1.第一个控制台输入参数是搜索匹配的输入字符串&*2.后面的一个或多个都是正则表达式,其用来在输入的第一个字符串中查找匹配,在Unix、Linux中,命令行中的正则表达式必须用引号括起&*&*&#64;author&landon&*&#64;since&1.6.0_35&*&#64;version&1.0.0&&*&*/public&class&TestRegularExpression{&&&&//Args&abcabcabcdefabc&"abc+"&"(abc)+"&"(abc)(2,)"&&&&public&static&void&main(String[]&args)&&&&{&&&&&&&&if(args.length&&&2)&&&&&&&&{&&&&&&&&&&&&System.out.println("Usage:\n&java&TestRegularExpression&"&+&"characterSequence&regularExpression");&&&&&&&&&&&&System.exit(0);&&&&&&&&}&&&&&&&&&&&&&&&&//显示""&&&&&&&&System.out.println("Input:\""&+&args[0]&+&"\"");&&&&&&&&&&&&&&&&for(String&arg&:&args)&&&&&&&&{&&&&&&&&&&&&System.out.println("Regular&expressions:&\""&&+&arg&+&"\"");&&&&&&&&&&&&//Pattern&&&&&&&&&&&&Pattern&p&=&pile(arg);&&&&&&&&&&&&//Match&&&&&&&&&&&&Matcher&m&=&p.matcher(args[0]);&&&&&&&&&&&&&&&&&&&&&&&&//Match#matches&&&&Match#lookingAt&&&&&&&&&&&&System.out.println(m.matches()&+&"&"&+&m.lookingAt()&+&"&");&&&&&&&&&&&&&&&&&&&&&&&&while(m.find())&&&&&&&&&&&&{&&&&&&&&&&&&&&&&System.out.println("Match&\""&+&m.group()&&&&&&&&&&&&&&&&&&&&&&&&+&"\"&at&positions&"&+&m.start()&+&"-"&+&(m.end()&-&1));&&&&&&&&&&&&}&&&&&&&&}&&&&}}&package&com.book.chap13.import&java.util.regex.Mimport&java.util.regex.P/**&*//**&*&*执行替换&*&*&#64;author&landon&*&#64;since&1.6.0_35&*&#64;version&1.0.0&&*&*/public&class&TheReplacements{&&&&public&static&String&input&=&"&/*!&&I'm&&tracy&&landon.&Hi,Linekong.&!*/";&&&&&&&&public&static&void&main(Stringargs)&&&&{&&&&&&&&//Pattern.DOTALL下&&&&.会被认为是&&&&&&&&Matcher&matcher&=&pile("/\\*!(.*)!\\*/",Pattern.DOTALL).matcher(input);&&&&&&&&String&s;&&&&&&&&if(matcher.find())&&&&&&&&{&&&&&&&&&&&&s&=&matcher.group(1);&&&&&&&&&&&&//两个空格替换成一个空格,这里使用String.replaceAll-&因为只使用了一次,与其编译为pattern,不如直接使用,开销也会小些&&&&&&&&&&&&s&=&s.replaceAll("&(2.)",&"&");&&&&&&&&&&&&System.out.println(s);&&&&&&&&&&&&//替换开头的行的空格&&&&&&&&&&&&s&=&s.replaceAll("(?m)^&+",&"");&&&&&&&&&&&&System.out.println(s);&&&&&&&&&&&&s&=&s.replaceFirst("[aeiou]",&"(VOWELI)");&&&&&&&&&&&&System.out.println(s);&&&&&&&&&&&&&&&&&&&&&&&&StringBuffer&sbuf&=&new&StringBuffer();&&&&&&&&&&&&Pattern&p&=&pile("[aeiou]");&&&&&&&&&&&&Matcher&matcher2&=&p.matcher(s);&&&&&&&&&&&&&&&&&&&&&&&&while(matcher2.find())&&&&&&&&&&&&{&&&&&&&&&&&&&&&&//该方法允许你在执行替换的过程中,操作来替换的字符串,这里将找到的元音字母转为大写&&&&&&&&&&&&&&&&matcher2.appendReplacement(sbuf,&matcher2.group().toUpperCase());&&&&&&&&&&&&&&&&//appengReplacement还允许你通过$g直接找到匹配的某个组,这里的g就是组号&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&matcher2.appendTail(sbuf);&&&&&&&&&&&&System.out.println(sbuf);&&&&&&&&}&&&&}}&package&com.book.chap13.import&java.util.R/**&*//**&*&*使用StringBuilder&*&*&#64;author&landon&*&#64;version&1.0.0&&上午10:50:50&*&#64;since&JDK&1.6.0_30&*&*/public&class&UsingStringBuilder{&&&&public&static&Random&random&=&new&Random(23);&&&&&&&&//数组的toString方法&&&&&#64;Override&&&&public&String&toString()&&&&{&&&&&&&&StringBuilder&result&=&new&StringBuilder("[");&&&&&&&&&&&&&&&&for(int&i&=&0;i&&&10;i++)&&&&&&&&{&&&&&&&&&&&&result.append(random.nextInt(100));&&&&&&&&&&&&result.append(",");&&&&&&&&}&&&&&&&&&&&&&&&&//删除最后一个逗号,注意数组下标从0开始[start,end-1]&&&&&&&&result.delete(result.length()&-&2,&result.length());&&&&&&&&result.append("]");&&&&&&&&&&&&&&&&return&result.toString();&&&&}&&&&&&&&public&static&void&main(Stringargs)&&&&{&&&&&&&&UsingStringBuilder&usb&=&new&UsingStringBuilder();&&&&&&&&System.out.println(usb);&&&&}}&&package&com.book.chap13./**&*//**&*&*显示的使用StringBuiler与编译器优化的StringBuilder&*&*&#64;author&landon&*&#64;version&1.0.0&&上午9:49:58&*&#64;since&JDK&1.6.0_30&*&*/public&class&WhitherStringBuilder{&&&&/**&*//**&&&&&*&&&&&&*&未使用StringBuilder(隐式),编译器会自动引入,不过是每次循环都会创建一个StringBuilder对象&&&&&*&&&&&&*&&#64;param&fields&&&&&*&&#64;return&&&&&*/&&&&public&String&implict(String[]&fields)&&&&{&&&&&&&&String&result&=&"";&&&&&&&&for(int&i&=&0;i&&&fields.i++)&&&&&&&&{&&&&&&&&&&&&result&+=&fields[i];&&&&&&&&}&&&&&&&&&&&&&&&&return&&&&&}&&&&&&&&/**&*//**&&&&&*&&&&&&*&显示的在循环外只创建了一个StringBuilder&&&&&*&&&&&&*&&#64;param&fields&&&&&*&&#64;return&&&&&*/&&&&public&String&explicit(String[]&fields)&&&&{&&&&&&&&StringBuilder&result&=&new&StringBuilder();&&&&&&&&for(int&i&=&0;i&&&fields.i++)&&&&&&&&{&&&&&&&&&&&&result.append(fields[i]);&&&&&&&&}&&&&&&&&&&&&&&&&return&result.toString();&&&&}}&
阅读(1853)
&re: Thinking in Java 4th chap13笔记-字符串
总结的真的很好&&&&&&}

我要回帖

更多关于 java判断元音字母 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信