2021-4-14 163 0
生活

11月刚刚过去,尼玛12月是一点都不善待我~倒霉的一天昨天晚上定了一个7点10分的闹钟,因为今天第一节有英语要上,然后不知道是我睡得太死了还是手机的问题,妈的一觉淦到了8点40多,然后班长给我打电话用手环的来电提醒才把我弄醒。然后我就赶紧着急的上英语去了呗,去了老师让打开云班课让看班课的经验值,我一看还有一个任务没完成呢,我就点进去了,哎,我一看,这不是期末要设计的手抄报吗,然后我就继续往下看那么要求,看着看着发现,妈的手抄报只能选几个固定的主题,一开始我看的是在群里发的一张图片,哪个图片上没有说要写什么主题,我就画了一张抗击疫情的,他妈的,后来又重新画了一份。然后这个事情就发生在刚刚,这个文章是下晚自习写的,现在是20:02分,就在前一个小时,我敬爱的班长就给我打电话过来了,哈哈哈!不好意思,又睡过了…睡的时候想着定个闹钟的,结果直接睡着了…还有还有,妈的这几天总是要帮别人看网页,妈的真是烦死了。自己什么都不会,还要一直要求改。不想去吐槽给别人听,也没人愿意听这些乱事情,就写在这里发泄和记录一下叭!其实倒霉归倒霉,没有那么好但是也没有那么糟,就比如英语哪个事情,如果没有发现然后改正,那岂不是零分了!!还好还好!那就那样!2020年12月1日,我是一名淦觉王.

2020-12-1 188 0
2020-9-10 169 0
未分类

在线查阅StringBuffer类-JDK-1.6版本这篇文章只记录了一些常用方法,方法实在是太TM多了,吃了String类的亏。StringBuffer类也称为字符串缓冲区。0x01添加新字符串append(任意数据类型)返回值:StringBuffer注意:该方法的参数是可以传任意数据类型的对象,然后会将该参数中的对象内容转换成字符串的表示形式追加到该字符序列中。代码:StringBuffersb=newStringBuffer();sb.append(false);System.out.println(sb);sb.append(1);System.out.println(sb);sb.append("yq2048.cn");System.out.println(sb);StringBuffersb1=newStringBuffer("-淤青的博客");sb.append(sb1);System.out.println(sb);执行结果:重载appendappend(CharSequences,intstart,intend)返回值:StringBuffers:追加的字符串start:截取s的索引,从start索引开始截取。end:从该索引-1的位置结束截取。这些情况会报错:1.start是负数(因为最小是0,截取第一个字符)2.start大于end3.end大于s.length()代码:StringBuffersb=newStringBuffer("淤青");sb.append("的博客",0,1);System.out.println(sb);sb.append("的博客",1,3);System.out.println(sb);执行结果:淤青的淤青的博客0x02返回当前容量capacity()返回值:int该方法返回的是容量,而不是长度。代码:StringBuffersb=newStringBuffer();inta=sb.capacity();System.out.println(a);sb.append("1");intb=sb.capacity();System.out.println(b);执行结果:16160x03返回该索引的字符charAt(intindex)返回值:charindex:返回该索引位置的内容代码:StringBuffersb=newStringBuffer("淤青的博客");charc1=sb.charAt(0);charc2=sb.charAt(sb.length-1());System.out.println(c1+""+c2);执行结果:淤客0x04删除指定范围字符delete(intstart,intend)返回值:StringBufferstart:从该索引开始(包括该索引),删除后面的字符。end:从该索引的-1截止,停止截取字符。代码:StringBuffersb=newStringBuffer("淤青的博客-yq2048.cn");sb.delete(5,sb.length());System.out.println(sb);执行结果:淤青的博客注意:当start是负数时或者大于end或者start大于length()时会报错。如果end超出了length(),编译时不会报错,而是将后面的内容全部删掉。0x05删除指定字符deleteCharAt(intindex)返回值:StringBufferindex:删除这个索引位置的字符StringBuffersb=newStringBuffer("淤青的博客--yq2048.cn");sb.deleteCharAt(5);System.out.println(sb);执行结果:淤青的博客-yq2048.cn0x06将指定内容复制到指定数组getChars(intsrcBegin,intsrcEnd,char[]dst,intdstBegin)返回值:voidsrcBegin:从该索引(包括)开始srcEnd:从该索引-1结束dst:复制到该数组dstBegin:在dst中从第几个索引开始粘贴代码:StringBuffersb=newStringBuffer("淤青的博客-yq2048.cn");char[]c1=newchar[10];char[]c2=newchar[10];sb.getChars(0,5,c1,0);//从索引0开始截取,到索引4停止截取(实际)。在c1数组中的索引0处开始粘贴。sb.getChars(6,sb.length(),c2,1);//在c2数组中的索引1处开始粘贴。System.out.println(c1);System.out.println(c2);执行结果:淤青的博客yq2048.cn0x07返回字符第一次出现的索引indexOf(Stringstr)返回值:intstr:需要查找的字符代码:StringBuffersb=newStringBuffer("淤青的博客");inti=sb.indexOf("客");System.out.println(i);执行结果:4从指定索引开始搜索字符第一次出现的位置indexOf(Stringstr,intformIndex)返回值:intformIndex:从该索引往后查询注意:如果没有查询到有该内容,那么,将返回-1代码:StringBuffersb=newStringBuffer("淤青的博客");inti1=sb.indexOf("淤",0);inti2=sb.indexOf("淤",1);System.out.println(i1+"__"+i2);执行结果:0__-10x08将内容插入指定索引insert(intoffset,char[]str)返回值:StringBufferoffset:添加到子字符的位置(不是索引)srt:将该数组添加到StringBuffer中该方法的重载方法太多了,几乎都是修改的传输数据类型,这里举例两个重载方法。代码:StringBuffersb=newStringBuffer("淤青的博客");char[]c={'y','q','2','0','4','8'};sb.insert(sb.length(),c);System.out.println(sb);执行结果:淤青的博客yq2048.cn重载insertinsert(intindex,char[]str,intoffset,intlen)返回值:StringBufferindex:添加到子字符的位置(不是索引)str:需要添加的数组offset:从srt中的第几个索引开始截取len:添加的数量代码:StringBuffersb=newStringBuffer("淤青的博客");char[]c={'y','q',};sb.insert(2,c,0,2);System.out.println(sb);执行结果:淤青yq的博客0x09返回字符串最后出现位置的索引lastIndexOf(Stringstr)返回值:intstr:寻找的字符代码:StringBuffersb=newStringBuffer("开始的开始,我们都是孩子");inti=sb.lastIndexOf("始");System.out.println(i);执行结果:4从指定索引开始搜索字符最后一次出现的位置lastIndexOf(Stringstr,intformIndex)返回值:intformIndex:从该索引往后查询代码:StringBuffersb=newStringBuffer("开始的开始,我们都是孩子");inti=sb.lastIndexOf("始",5);System.out.println(i);执行结果:-10x10返回长度(字符数)length()返回值:int注意:length()返回的是当前字符数,而capacity()返回的是具体容量。代码:StringBuffersb=newStringBuffer("淤青的博客");System.out.println(sb.length());System.out.println(sb.capacity());执行结果:521StringBuffer的默认容量不是16吗?还没有到达触发扩容机制为什么就输出21?使用无参构造方法的默认容量是16,这里使用的是有参构造方法,而这个构造方法的里的代码是这么写的:super(str.length()+16),也就是你参数字符的长度+16。0x11指定字符替换指定范围内的字符replace(intstart,intend,Stringstr)返回值:StringBufferstart:从该索引位置开始(包括这个索引),被替换。end:从end-1的索引位置,停止截取。·如果str比范围内的字符长度还多,那么将会自动延伸。代码:StringBuffersb=newStringBuffer("害,又在写代码,烦死了。");sb.replace(8,11,"高兴死了");System.out.println(sb);执行结果:害,又在写代码,高兴死了。它不仅可以实现替换功能,还可以实现在指定位置添加的功能。StringBuffersb=newStringBuffer("大家好,我是小明,来自地球村。");sb.replace(8,8,",今年18周岁了");//把第八个索引(是个,)替换掉,替换成今年18周岁了。System.out.println(sb);执行结果:大家好,我是小明,今年18周岁了,来自地球村。0x12将字符反转reverse()返回值:StringBuffer代码:StringBuffersb=newStringBuffer("天行健,君子以自强不息");sb.reverse();System.out.println(sb);执行结果:息不强自以子君,健行天0x13将指定索引处的字符更换成charsetCharAt(intindex,charch)返回值:voidindex:替换该索引的内容ch:替换的内容代码:StringBuffersb=newStringBuffer("yq1048.cn");sb.setCharAt(2,'2');System.out.println(sb);执行结果:yq2048.cn0x14设置字符长度setLength(intnewLength)newLength:新的长度代码:StringBuffersb=newStringBuffer();intc1=sb.capacity();//返回容量intl1=sb.length();//返回字符长度System.out.println("更改前:容量:"+c1+",长度:"+l1);sb.setLength(17);//将sb的字符长度更改为17intc2=sb.capacity();intl2=sb.length();System.out.println("更改后:容量:"+c2+",长度:"+l2);执行结果:更改前:容量:16,长度:0更改后:容量:34,长度:170x15将内容返回一个新的Stringsubstring(intstart)返回值:Stringstart:从该索引开始(从这个索引开始截取,包括),截取到最后代码:StringBuffersb=newStringBuffer("yq2048.cn-淤青的博客");Strings1=sb.substring(10);System.out.println(s1);执行结果:淤青的博客重载substringsubstring(intstart,intend)返回值:Stringstart:从该索引开始截取(截取时包括该索引)end:从end-1索引位置停止截取。代码:StringBuffersb=newStringBuffer("开始的开始,我们都是孩子。");Strings1=sb.substring(6,sb.length());System.out.println(s1);执行结果:我们都是孩子。

2020-6-28 224 2
未分类

如果String的值为null,在调用方法时则会报错。在线查阅String类-JDK-1.6版本0x01获取字符串的长度length()返回值:int代码:Strings1="淤青的博客";System.out.print(s1.length());执行结果:5length和length()的区别:length是数组中的一个属性,用来获取该数组有多少个元素。而length()是String类的一个方法。用来获取该字符串的长度。0x02返回该索引的内容charAt(intindex)返回值:charindex:索引,0开始,length-1结束。代码:Strings1="淤青的博客";charc1=s1.charAt(0);System.out.println(c1);System.out.println(s1.charAt(s1.length()-1));/*注意:这里使用的是length(),这是一个方法,而不是length属性。*/执行结果:淤客0x03返回该索引的Unicode码codePointAt(intindex)返回值:intindex:索引,返回该索引的Unicode码。代码:Strings1="淤青的博客";inti=s1.codePointAt(0);//将淤转换成Unicode码。System.out.println(i);//结果是28132charc=(char)i;//验证一下28132在Unicode位置中是不是淤System.out.println(c);//结果是淤执行结果:28132淤0x04返回该索引前一个的Unicode码codePointBefore(intindex)返回值:intindex:索引codePointBefore和codePointAt大同小异,只是该方法返回的是该索引的前一位。也就是返回的是index-1,最小范围是1。代码:Strings1="淤青的博客";inti=s1.codePointBefore(1);//返回淤的Unicode码System.out.println(i);charc=(char)i;System.out.println(c);执行结果:28132淤0x05两个字符串取Unicode码的差compareTo(StringanotherString)返回值:intanotherString:需要比较的字符串首先了解:"A"的Unicode码为:65"a"的UNicode码为:97"B"的Unicode码为:66"b"的Unicode码为:98如果大小写转相减或相加32就可以。该方法的功能:用调用者字符串的Unicode值来比较参数字符串的Unicode值,如果调用者字符串的Unicode值位置在前,则会返回一个小于0的数,比如:A(65)和a(97)比较,就会返回-32。而两个字符串的Unicode值相等时,则会返回0。如果调用者比参数大,则会返回一个大于0的数。比如:a(97)和B(66)比较,则会返回正的31。代码:Strings1="a";inti=s1.compareTo("B");System.out.println(i);执行结果:310x06字符串末尾拼接concat(Stringstr)返回值:Stringstr:需要添加在原字符串末尾的字符串该方法和用”+”字符串拼接差不多,用”+”可以将字符串和任何数据类型连接在一起。而用concat方法的话,参数只可以是String类型,如果参数长度为0,则返回原字符串。代码:Strings1="淤青";Strings2=s1.concat("的博客");System.out.println(s2);Strings3=s1.concat("");System.out.println(s3);//打印的是:淤青,证明了不会在原字符串修改,而是拷贝一份。执行结果过:淤青的博客淤青0x07判断字符串是否存在指定内容contains(CharSequences)返回值:booleans:存在的值,如果字符串包括该内容则返回true,不包括返回false。代码:Strings1="淤青的博客";booleanb1=s1.contains("淤青");System.out.println(b1);booleanb2=s1.contains("123");System.out.println(b2);执行结果:truefalse0x08String与StringBuilder进行内容比较contentEquals(CharSequencecs):返回值:booleancs:StringBuilder内容equals()和contentEquals()的区别:equals:该方法只允许比较String内容,如果String和StringBuilder的内容一致,用equals比较的话会返回false。contentEquals:使用该方法即可用String和StringBuilder正确比较。代码:Strings1="淤青的博客";StringBuildersb1=newStringBuilder("淤青的博客");booleanb1=s1.equals(sb1);booleanb2=s1.contentEquals(sb1);执行结果:falsetrue0x09将char数组以字符串形式返回1.copyValueOf(char[]data)返回值:Stringdate:需要以字符串显示的char型数组。该方法为静态方法。代码:char[]c={'淤','青','的','博','客'};Strings1=String.copyValueOf(c);System.out.println(s1);执行结果:淤青的博客2.copyValueOf(char[]data,intoffset,intcount)返回值:Stringdate:需要以字符串显示的char型数组offset:开始截取的索引count:截取数组的长度该方法为静态方法代码:char[]c={'淤','青','的','博','客'};Strings1=String.copyValueOf(c,0,4);//也就是从第一个开始,截取4个System.out.println(s1);执行结果:淤青的博0x10判断字符串是否以指定内容结尾endswith(Stringsuffix)返回值:booleansuffix:判断结尾是否该字符串代码:Strings1="淤青的博客";booleanb1=s1.endsWith("");booleanb2=s1.endsWith("淤");booleanb3=s1.endsWith("博客");booleanb4=s1.endsWith("客");System.out.println(b1+"\n"+b2+"\n"+b3+"\n"+b4);注意:如果endsWith方法的参数是空字符串或者等同于原字符串,那么结果会返回true。执行结果:truefalsetruetrue0x11比较字符串内容是否相等eauals(ObjectanObject)返回值:booleanabObject:比较内容的对象注意:该方法只适用于String与String之间比较,不适用于String与StringBuilder等比较,如有此需求请查看0x08。代码:Strings1="淤青的博客";booleanb1=s1.equals("淤青的博客");booleanb2=s1.equals("淤青");System.out.println(b1+"\n"+b2);执行结果:truefalse0x12忽略大小写判断字符串内容是否相等equalsIgnoreCase(StringanotherString)该方法和equals大同小异的是:该方法会和略大小写不同,Qing和qing用该方法比较,会返回true。0x13将字符串复制到char数组中getChars(intsrcBegin,intsrcEnd,char[]dst,intdstBegin)返回值:voidsrcBegin:从该字符串的第几个索引开始srcEnd:截取的长度。不是索引是长度dst:目标char型数组dstBegin:从该数组第几个索引粘贴注意:类似于该方法的还有getBytes方法,由于String方法太多,就不一一举例了,自行查阅JDK。char[]c=newchar[7];Strings="淤青的博客";s.getChars(1,s.length(),c,1);for(charx:c){System.out.print(c);}执行结果:(空格)青的博客(空格)(空格)0x14返回指定字符串第一次出现的索引indexOf(Stringstr)返回值:intstr:需要查找的字符串注意:如果没有找到该内容那么将返回-1Strings="淤青的博客";inti1=s.indexOf("青");inti2=s.indexOf("青的");inti3=s.indexOf("。");System.out.print(i1+"\n"+i2+"\n"+i3);执行结果:11-1//因为没有找到该字符串从指定的索引开始查找indexOf(Stringstr,intfromIndex)返回值:intstr:需要查找的字符串formIndex:从指定的索引开始搜索Strings="淤青的博客";inti1=s.indexOf("青",0);inti2=s.indexOf("青",1);System.out.print(i1+"\n"+i2);执行结果:1-10x15intern方法intern()返回值:String使用方法:使用字符串调用该方法的时候,会在字符串常量池中查找有没有同样内容的字符串,如果有则返回字符串常量池中的引用,如果没有,那么则在字符串常量池中新建一个,并返回字符串常量池中的引用。代码:Strings1="淤青的博客";Strings2=newString("淤青的博客");System.out.println(s1==s2);System.out.println(s1==s2.intern());//判断s2调用intern方法时,是否指向字符串常量池中执行结果:falsetrue0x16判断是否是空字符串isEmpty()返回值:boolean代码:Strings1="";Strings2="淤青的博客";System.out.println(s1.isEmpty());System.out.println(s2.isEmpty());执行结果:truefalse0x17将字符串指定格式输出join(CharSequencedelimiter,CharSequence…elements)注意:CharSequence…elements,这个…是可变长参数,也就是不确定到底要输入多少个元素,可以任意输入多少个。返回值:String该方法为静态方法delimiter:格式符号elements:字符串元素a-b-c-d-e-f该怎么这样有格式的输出?使用方法:在delimiter中输入一个字符串型的符号"-",然后在elements参数中传入多个字符串,然后把结果返回给一个新的String。注意:length()==1和length()-1时,也就是只有一个字符串内容和字符串结尾处,不会添加delimiter参数内容。代码:Strings1=String.join("-","淤","青","的","博","客");System.out.print(s1);执行结果:淤-青-的-博-客该方法还有针对集合进行操作的,具体查看JDK。0x18返回该字符串最后一次出现的索引lastIndexOf(Stringstr)返回值:intstr:需要查找的字符串如果找到了则返回索引,没找到返回-1Strings1="淤青的博客";inti=s1.lastIndexOf("客");System.out.print(i);执行结果:4从指定的的范围内查找lastIndexOf(Strintstr,intformIndex)formIndex:从该索引结束。如果在该索引的范围内没有查找到指定内容,则返回-1。代码:Strings1="淤青的博客";inti1=s1.lastIndexOf("淤",0);inti2=s1.lastIndexOf("青",0);//青的索引是1,而参数写的0,只可以查询带淤,所以返回-1System.out.println(i1+"\n"+i2);执行结果:0-10x19regionMatches方法regionMatches(booleanignoreCase,inttoffset,Stringother,intooffset,intlen)返回值:booleanignoreCase:控制是否开启忽略大小写,为true时忽略,false关闭。toffset:从该索引位置开始比较。other:需要比较的字符串。ooffset:从该索引开始比较。len:需要比较的长度。代码:Strings1="yuqing";Strings2="YUQING";booleanb1=s1.regionMatches(true,0,s2,0,3);booleanb2=s1.regionMatches(false,0,s2,0,3);System.out.println(b1+"\n"+b2);执行结果:true该方法还有一个重载方法,把ignoreCase参数去掉就是了。0x20输入新字符将指定旧内容替换replace(CharSequencetarget,CharSequencereplacement)返回值:Stringtarget:原字符串中需要被替换掉的内容replacement:新内容代码:Strings1="yuqing";Strings2=s1.repace("yu","qqq");System.out.println(s2);执行结果:qqqqing0x21将指定内容全部更换replaceAll(Stringregex,Stringreplacement)返回值:Stringregex:需要被更换的字符replacement:新内容代码:Strings1="112233";Strings2=s1.replaceAll("2","6");System.out.println(s2);执行结果:1166330x22将查询到的第一个字符更换replaceFirst(Stringregex,Stringreplacement)返回值:Stringregex:需要被更换的字符replacement:新内容注意:如果该字符串中查询到了多个regex参数内容,那么该方法不会全部更换,只会更换第一个位置的内容。代码:Strings1="112222";Strings2=s1.replaceFirst("2","6");System.out.println(s2);执行结果:1162220x23判断是否以指定字符开头startsWith(Stringprefix)返回值:booleanprefix:是否以该内容开头代码:Strings1="http://yq2048.cn";booleanb=s1.startsWith("http://");System.out.println(b);执行结果:true通过指定索引判断是否以指定内容开头startsWith(Stringprefix,inttoffset)返回值:booleanprefix:是否以该内容开头toffset:在该索引开始判断代码Strings1="http://yq2048.cn";booleanb=s1.startsWith(".cn",s1.length()-3);//验证后缀是否以.cn结尾System.out.println(b);执行结果:true0x24通过指定索引位置分割字符串substring(intbeginIndex)返回值:StringbeginIndex:返回该索后的内容代码:Strings1="淤青的博客";Strings2=s1.substring(1);System.out.print(s2);执行结果:青的博客返回开始索引和结束索引中的字符串substring(intbeginIndex,intendIndex)返回值:StringbeginIndex:开始的索引,包括该索引endIndex:结束索引(不包括该索引),也就是说该索引前一位才是最终点。代码:Strings1="淤青的博客-yq2048.cn";Strings2=s1.substring(1,12);System.out.println(s2);执行结果:青的博客-yq20480x25通过指定字符分割字符串split(Stringregex)返回值:String[]regex:指定字符串使用方法:在该字符串中,查找regex参数内容,找到后将该regex前的内容返回给第一个元素,如果后面还有regex内容,那么将第二个regex前的内容(到第一个regex内容后截止)赋值给第二个元素。代码:Strings1="小龙虾,啤酒,花生米,烤串,铁铁";String[]s2=s1.split(",");for(inti=0;i<s2.length;i++){System.out.println("第"+i+"个元素是:"+s2[i]);}执行结果:第0个元素是:小龙虾第1个元素是:啤酒第2个元素是:花生米第3个元素是:烤串第4个元素是:铁铁0x26将字符串转换成char型数组toCharArray()返回值:void代码:Strings1="淤青的博客";char[]c=s1.toCharArray();for(charx:c){System.out.print(x+"");}执行结果:淤青的博客0x27将字符串转换成小写toLowerCase()返回值:String代码:Strings1="AABBCC";Strings2=s1.toLowerCase();System.out.println(s2);执行结果:aabbcc0x28将字符串转换成大写toUpperCase()返回值:String代码:Strings1="aabbcc";Strings2=s1.toUpperCase();System.out.println(s2);执行结果:AABBCC0x29删除字符串前缀和后缀的空格trim()返回值:String注意:删除的是第一个字符前的内容,如果第一个字符后还有空格,则不会删除第一个字符后的空格。代码:Strings1="淤青的博客";Strings2="。淤青的博客。";Strings3=s1.trim();Strings4=s2.trim();System.out.println(s3+"\n"+s4);执行结果:淤青的博客。淤青的博客。妈的,终于弄完了~~hhh!!(^▽^)

2020-6-23 212 0
2020-5-24 214 0
2020-5-16 228 0