java编码实现求给定java 字符串转小写(全为小写英文字母)的最小后继,如"abc"的最小

Java:给定一个字符串,判断该字符串中是否包含某个子串.如果包含,求出子串的 所有出现位置. 在ja语言如何判断某个字符串中是否含有指定的某个子串
你正在浏览: & >
Java:给定一个字符串,判断该字符串中是否包含某个子串.如果包含,求出子串的 所有出现位置.
Ja:给定一个字符串,判断该字符串中是否包含某个子串.如果包含,求出子串的 所有出现位置.
11.字符串和子串均由用户输入(要代码.如;中,求出子串的所有出现位置,7;子串的出现位置为: 1;bc&quot,不要乱七八糟的;abcd23abc34bcd&quot:&quot给定一个字符串,判断该字符串中是否包含某个子串.如果包含,&quot
lass cha{public static void main(String[] ages){String a=chazhao(&abcd23abc34bcd&.println(a);/y++){c=a;);y&a.length();想传什么传什么S//)./打印来看看效果}public static String chazhao(String a,String b){StringBuffer sb=new StringBuffer();int c=-1;bc&quot.indexOf(b,c+1);if(c==-1){}else{sb.append(c+& &}}return sb.toString(),&for(int y=0
lass cha{public static void main(String[] ages){String a=chazhao(&abcd23abc34bcd&.println(a);/y++){c=a;);y&a.length();想传什么传什么S//)./打印来看看效果}public static String chazhao(String a,String b){StringBuffer sb=new StringBuffer();int c=-1;bc&quot.indexOf(b,c+1);if(c==-1){}else{sb.append(c+& &}}return sb.toString(),&for(int y=0
String subString = input.nextLine();for (index = userInput.indexOf(subString, index+1); index != -1.Scanner,&quot.println (&Please enter the string..nextLine();output..;);import ja.&index = userInput.indexOf(subString, index+1)){output.print(index + &;int index = 0.io.PrintSpublic class Answer{public static void main(String[] args){Scanner input = new Scanner(System.in);PrintStream output = System.outputimport ja.util..&);String userInput = input.println (&Please)
问题:Ja:给定一个字符串,判断该字符串中是否包含某个子串.如果包含,求出子串的 所有出现位置.回答:百度文库里有现成的代码。
System.out.println(&1253&==&123&); 可以用等号判断是否相等啊,显示...~~~
低位地址系统自用~~~
01.&script type=&text/javascript&&02.   function t...~~~
没细看,那set &ap=!ap:va=\!& 中va没有取值符就算字符串肯定是不对了,改成call...~~~
设置两个字符间的字距微调,前面的是把光标放在两个字中间才有用。后面的是对所有字,要选中所有的字。~~~
有v的其参数为参数列表指针,使用va_list、va_...因此,如果使用一个字节来保存字符,则需要...~~~
关键词:void:声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果char:字符型类型数据...~~~
关于c语言问题 程序目的是编写一个函数 可将可变数目的字符串作为参数 并将字符串拼接char *co...~~~
看看这样合适不合适 #include &stdarg.h& void* add(int num, v...~~~
函数时能将该 实参名 作为字符串调入并存入set&...有时候我们希望定义参数列表不确定的宏(Mac...
你可能感兴趣的内容?&&&&&&&&&&&&&&&&&&
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方法 * *@author landon *@version 1.0.0
下午6:20:50 *@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&*&*@author&landon&*@version&1.0.0&&上午9:31:05&*@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中查找多个匹配&*&*@author&landon&*@since&1.6.0_35&*@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提供的获取与组相关的信息&*&*@author&landon&*@since&1.6.0_35&*@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进制格式查看工具&*&*@author&landon&&*@since&1.6.0_35&*@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的不可变性&*&*@author&landon&&*@version&1.0.0&&下午5:40:20&*@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)&*&*@author&landon&*@version&1.0.0&&下午6:27:34&*@since&JDK&1.6.0_30&*&*/public&class&InfiniteRecursion{&&&&//@Override&&&&//会报堆栈溢出的错误&&&&/**//*public&String&toString()&&&&{&&&&&&&&return&"InfiniteRecursion&Address&"&+&this&+&"\n";&&&&}*/&&&&&&&&@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+&&&&|表示或,括号表示分组,该正则表达式表示字符串的起始字符可能是一个+,或者都没有,因为后面跟着?,&*+在正则表达式中有特殊意义,所以必须转义&*&*@author&landon&*@since&1.6.0_35&*@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的各种标记&*&*@author&landon&*@since&1.6.0_35&*@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&正则替换&*&*@author&landon&*@since&1.6.0_35&*@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对象应用于一个新的字符序列&*&*@author&landon&*@since&1.6.0_35&*@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"&*&*@author&landon&*@since&1.6.0_35&*@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(返回定界符)方法&*&*@author&landon&&*@since&1.6.0_35&*@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结合正则表达式扫描复杂数据&*&*@author&landon&*@since&1.6.0_35&*@version&1.0.0&&*&*/public&class&ScannerWithGrep{&&&&public&static&void&main(String[]&args)&&&&{&&&&&&&&Scanner&scanner&=&new&Scanner("10.130.140.108@27/11/2013&\n"&+&"10.130.14.119@18/11/2014\n"&+&"next&log&section");&&&&&&&&&&&&&&&&//&ip@date&&&&&&&&String&pattern&=&"(\\d+[.]\\d+[.]\\d+[.]\\d+)@"&+&"(\\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&*&*@author&landon&&*@version&1.0.0&&下午10:54:27&*@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&*&*@author&landon&*@since&1.6.0_35&*@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/**&*//**&*&*{@link&String#split(String)}&*将字符串从正则表达式匹配的地方切开&*&*@author&landon&*@since&1.6.0_35&*@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方法&*&*@author&landon&*@since&1.6.0_35&*@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&*&*@author&landon&&*@version&1.0.0&&下午9:46:16&*@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&*&*@author&landon&*@since&1.6.0_35&*@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中,命令行中的正则表达式必须用引号括起&*&*@author&landon&*@since&1.6.0_35&*@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/**&*//**&*&*执行替换&*&*@author&landon&*@since&1.6.0_35&*@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&*&*@author&landon&*@version&1.0.0&&上午10:50:50&*@since&JDK&1.6.0_30&*&*/public&class&UsingStringBuilder{&&&&public&static&Random&random&=&new&Random(23);&&&&&&&&//数组的toString方法&&&&@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&*&*@author&landon&*@version&1.0.0&&上午9:49:58&*@since&JDK&1.6.0_30&*&*/public&class&WhitherStringBuilder{&&&&/**&*//**&&&&&*&&&&&&*&未使用StringBuilder(隐式),编译器会自动引入,不过是每次循环都会创建一个StringBuilder对象&&&&&*&&&&&&*&@param&fields&&&&&*&@return&&&&&*/&&&&public&String&implict(String[]&fields)&&&&{&&&&&&&&String&result&=&"";&&&&&&&&for(int&i&=&0;i&&&fields.i++)&&&&&&&&{&&&&&&&&&&&&result&+=&fields[i];&&&&&&&&}&&&&&&&&&&&&&&&&return&&&&&}&&&&&&&&/**&*//**&&&&&*&&&&&&*&显示的在循环外只创建了一个StringBuilder&&&&&*&&&&&&*&@param&fields&&&&&*&@return&&&&&*/&&&&public&String&explicit(String[]&fields)&&&&{&&&&&&&&StringBuilder&result&=&new&StringBuilder();&&&&&&&&for(int&i&=&0;i&&&fields.i++)&&&&&&&&{&&&&&&&&&&&&result.append(fields[i]);&&&&&&&&}&&&&&&&&&&&&&&&&return&result.toString();&&&&}}&
阅读(1842)
&re: Thinking in Java 4th chap13笔记-字符串
总结的真的很好&&&&&&}

我要回帖

更多关于 java 字符串转小写 的文章

更多推荐

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

点击添加站长微信