java string?java.lang.nullpointerEXception
- 夕逆IT
- 前端設(shè)計(jì)
- 2023-08-13
- 93
大家好,今天小編來(lái)為大家解答以下的問(wèn)題,關(guān)于java string,java.lang.nullpointerEXception這個(gè)很多人還不知道,現(xiàn)在讓我們一起來(lái)看看...
大家好,今天小編來(lái)為大家解答以下的問(wèn)題,關(guān)于java string,java.lang.nullpointerEXception這個(gè)很多人還不知道,現(xiàn)在讓我們一起來(lái)看看吧!
Java中String類(lèi)型有沒(méi)有長(zhǎng)度的限制
嚴(yán)格來(lái)說(shuō),String確實(shí)有長(zhǎng)度限制。
1、String內(nèi)部使用一個(gè)char[]數(shù)組來(lái)存放字符串的內(nèi)容,數(shù)組下標(biāo)是整型(也可以參考String的構(gòu)造方法String(charvalue[],intoffset,intcount),可以知道字符數(shù)量是用整型表示),整型(Java規(guī)定32位)表示范圍是2G,也就是說(shuō),Java數(shù)組最大的長(zhǎng)度是2G,即字符串不能超過(guò)2G個(gè)字符。
2、Java的數(shù)組大小還有沒(méi)有別的限制?事實(shí)上數(shù)組大小不能超過(guò)Java堆的大小,而Java堆的最大尺寸可以通過(guò)啟動(dòng)參數(shù)指定,如果Java堆開(kāi)得足夠大,數(shù)組的最大長(zhǎng)度是可以不斷增大的。
3、所以,理論上,字符串不能超過(guò)2G個(gè)字符,少于2G個(gè)字符都有可能。
Java中string的用法
以下是string的七種用法,注意哦,記得要時(shí)常去查看Java的API文檔,那個(gè)里面也有很詳細(xì)的介紹
1>獲取1.1:字符串中包含的字符數(shù),也就是字符串的長(zhǎng)度。intlength():獲取長(zhǎng)度1.2:根據(jù)位置獲取位置上某個(gè)字符。charcharAt(intindex)1.3:根據(jù)字符獲取該字符在字符串中的位置。intindexOf(intch):返回的是ch在字符串中第一次出現(xiàn)的位置。intindexOf(intch,intfromIndex):從fromIndex指定位置開(kāi)始,獲取ch在字符串中出現(xiàn)的位置。intindexOf(Stringstr):返回的是str在字符串中第一次出現(xiàn)的位置。intindexOf(Stringstr,intfromIndex):從fromIndex指定位置開(kāi)始,獲取str在字符串中出現(xiàn)的位置。1.4:intlastIndexOf(Stringstr):反向索引。
2>判斷2.1:字符串中是否包含某一個(gè)子串。booleancontains(str);特殊之處:indexOf(str):可以索引str第一次出現(xiàn)為止,如果返回-1,表示該str不在字符串中存在。所以,也可以用于對(duì)指定判斷是否包含。if(str.indexOf("a")!=1)
而且該方法既可以判斷,也可以獲取出現(xiàn)的位置。
2.2:字符串中是否有內(nèi)容。booleanisEmpty():原理就是判斷長(zhǎng)度是否為0。2.3:字符串是否以指定內(nèi)容開(kāi)頭。booleanstartsWith(str);2.4:字符串是否以指定內(nèi)容結(jié)尾。booleanendsWith(str);2.5:判斷字符內(nèi)容是否相同,復(fù)寫(xiě)了object類(lèi)中的equals方法。booleanequals(str);2.6:判斷內(nèi)容是否相同,并忽略大小寫(xiě)。boolean.equalsIgnorecase();
3>轉(zhuǎn)換3.1:將字符數(shù)組轉(zhuǎn)成字符串。構(gòu)造函數(shù):String(char[])String(char[],offset,count):將字符數(shù)組中的一部分轉(zhuǎn)成字符串靜態(tài)方法:staticStringcopyValueOf(char[]);staticStringcopyValueOf(char[]data,intoffset,intcount);
staticStringvalueOf(char[]);3.2:將字符串轉(zhuǎn)成字符組char[]tocharArray();
3.3:將字節(jié)數(shù)組轉(zhuǎn)成字符串。String(byte[])String(byte[],offset,count):將字節(jié)數(shù)組中的一部分轉(zhuǎn)成字符串3.4:將字符串轉(zhuǎn)成字節(jié)數(shù)組。byte[]getBytes()
3.5:將基本數(shù)據(jù)類(lèi)型轉(zhuǎn)成字符串,staticStringvalueOf(int)staticStringvalueOf(double)
//3+""與String.valueOf(3)的值是一樣的特殊:字符串和字節(jié)數(shù)組在轉(zhuǎn)換過(guò)程中,是可以指定編碼的。
4>替換Stringreplace(oldchar,newchar);
5>切割String[]split(regex);
6>子串。獲取字符串中的而一部分StringsubString(begin);StringsubString(begin,end);
7>轉(zhuǎn)換,去除空格,比較。7.1:將字符串轉(zhuǎn)成大寫(xiě)或小寫(xiě)StringtoUpperCsae()大轉(zhuǎn)小StringtoLowerCsae()小轉(zhuǎn)大
7.2:將字符串兩端的多個(gè)空格去除Stringtrim();
7.3:對(duì)兩個(gè)字符串進(jìn)行自然順序的比較intcompareTo(string);
請(qǐng)看如下代碼,下面的代碼都是針對(duì)上面string七種用法而進(jìn)行一一舉例說(shuō)明:
[java]viewplaincopyclassStringMethodDemo{publicstaticvoidmethod_Zhuanhuan_Qukong_Bijiao(){Strings="helloJava";//打印結(jié)果是:(hello和java前后門(mén)都有空格)hellojavasop(s.toUpperCase());//打印結(jié)果是:(HELLO和JAVA前后門(mén)都有空格)HELLOJAVAsop(s.toLowerCase());//打印及結(jié)果是:不帶空格的“hellojava”sop(s.trim());//比較數(shù)的大寫(xiě),打印結(jié)果是:1,因?yàn)閎對(duì)應(yīng)ascii值是98,//a對(duì)應(yīng)是97,所以b-a=1Strings1="abc";Strings2="aaa";sop(s1.compareTo(s2));}publicstaticvoidmethod_sub(){Strings="abcdef";//打印結(jié)果是:cdef,從指定位置開(kāi)始到結(jié)尾。如果角標(biāo)不存在,會(huì)出現(xiàn)字符串角標(biāo)越界。sop(s.substring(2));//打印結(jié)果是:cd,包含頭,不包含尾。sop(s.substring(2,4));}publicstaticvoidmethod_split(){Strings="zhangsan,lisi,wangwu";String[]arr=s.split(",");for(intx=0;x<arr.length;x++){sop(arr[x]);}}publicstaticvoidmethod_replace(){Strings="hellojava";//Strings1=s.replace('a','n');//Strings1=s.replace('w','n');如果要替換的字符不存在,返回的還是原串Strings1=s.replace("java","world");//打印結(jié)果是:helloworldsop("s="+s);//打印結(jié)果是:hellojava因?yàn)樽址坏┍怀跏蓟?,值就不可被改變sop("s1="+s1);//打印結(jié)果是:hellojnvn}publicstaticvoidmethod_trans(){char[]arr={'a','b','c','d','e','f'};Strings=newString(arr,1,3);sop("s="+s);//打印結(jié)果是:bcdStrings1="zxcvbnm";char[]chs=s1.toCharArray();for(intx=0;x<chs.length;x++){sop("ch="+chs[x]);//打印結(jié)果是:ch=z,x,c,v,b,n,m}}publicstaticvoidmethod_is(){Stringstr="ArrayDemo.java";//判斷文件名稱(chēng)是否是Array單詞開(kāi)頭sop(str.startsWith("Array"));//判斷文件名稱(chēng)是否是.java的文件sop(str.endsWith(".java"));//判斷文件中是否包含Demosop(str.contains("Demo"));}publicstaticvoidmethod_get(){Stringstr="abcdeakpf";//長(zhǎng)度sop(str.length());//根據(jù)索引獲取字符sop(str.charAt(4));//sop(str.charAt(40));當(dāng)訪問(wèn)到字符串中不存在的角標(biāo)時(shí)會(huì)發(fā)生StringIndexOutOfBoundsException(字符串角標(biāo)越界異常)//根據(jù)字符獲取索引//sop(str.indexOf('a'));sop(str.indexOf('a',3));//打印的是5,因?yàn)榻菢?biāo)3是d,//所以從d后面開(kāi)始找a,第5個(gè)角標(biāo)是a//sop(str.indexOf('t',3))打?。?1,如果沒(méi)有找到角標(biāo),返回-1//反向索引一個(gè)字符出現(xiàn)的位置(從右往左查找,但是角標(biāo)還是從左開(kāi)始)sop(str.lastIndexOf("a"));}publicstaticvoidmain(String[]args){method_Zhuanhuan_Qukong_Bijiao();//method_sub();//method_split();//method_replace();//method_trans();//method_is();//method_get();/*Strings1="abc";Strings2=newString("abc");Strings3="abc";System.out.println(s1==s2);System.out.println(s1==s3);*/}publicstaticvoidsop(Objectobj){System.out.println(obj);}}看懂了嗎?反正我是看不懂因?yàn)槲沂菃?wèn)的度娘,搞不懂為啥要我回答這個(gè)問(wèn)題我是一個(gè)健康顧問(wèn)不是程序猿
java里面的const-string什么意思
java里面沒(méi)法用const。
1、可以用final關(guān)鍵字。
2、例如finalintm=9。被聲明為final的變量不能被再次賦值。final也可以用于聲明方法或類(lèi),被聲明為final的方法或類(lèi)不能被繼承。
3、注意const是java的保留字以備擴(kuò)充。const-String表示定義好的字符串常量在任何位置都不能被更改。
Java string轉(zhuǎn)char
String類(lèi)型自帶有轉(zhuǎn)換為char數(shù)組的方法:Strings="test";char[]ch=s.toCharArray();
用Java怎樣把String轉(zhuǎn)換為double
Java將String轉(zhuǎn)換為double,主要是使用double的valueof方法如下:Java中double也是可以轉(zhuǎn)換成string類(lèi)型的,代碼如下:
java統(tǒng)計(jì)字符串中的字符重復(fù)的次數(shù)和和出現(xiàn)次數(shù),實(shí)例
先把字符串split切開(kāi)到一個(gè)Array,然后用Map<String,Int>統(tǒng)計(jì)個(gè)數(shù),再打印
好了,關(guān)于java string和java.lang.nullpointerEXception的問(wèn)題到這里結(jié)束啦,希望可以解決您的問(wèn)題哈!
本文鏈接:http://xinin56.com/qianduan/8745.html