javastring的大小
『壹』 java怎麼比較字元串大小
java的String類中有一個compareTo的方法。
publicclasstest{
publicstaticvoidmain(String[]args){
Stringa="abb";
Stringb="abc";
System.out.println(a.compareTo(b));
Stringa1="abc";
Stringb1="abc";
System.out.println(a1.compareTo(b1));
Stringa2="abd";
Stringb2="abc";
System.out.println(a2.compareTo(b2));
}
}
小於輸出負數,相等輸出0,大於輸出正數
『貳』 java string 有多長
不考慮內存的前提下
String有個char[],它的最大的長度為Integer.MAX_VALUE。
但以String s = "aaaaaaaaa................"這種方式聲明的話,內最多65536長度。
再多編譯器會報錯。容
『叄』 java string最大長度
String內部是以char數組的形式存儲,數組的長度是int類型,那麼String允許的最大長度就是Integer.MAX_VALUE了。又由於java中的字元是以16位存儲的,因此大概需要4GB的內存才能存儲最大長度的字元串。不過這僅僅是對字元串變數而言,如果是字元串字面量(string literals),如「abc"、"1a2b"之類寫在代碼中的字元串literals,那麼允許的最大長度取決於字元串在常量池中的存儲大小,也就是字元串在class格式文件中的存儲格式:
CONSTANT_Utf8_info {
u1 tag;
u2 length;
u1 bytes[length];
}
u2是無符號的16位整數,因此理論上允許的string literal的最大長度是2^16-1=65535。然而實際測試表明,允許的最大長度僅為65534,超過就編譯錯誤了.
參考:http://www.blogjava.net/killme2008/archive/2009/01/15/251368.html
『肆』 java里,string的長度是固定的
所謂長度固定不是你理解的意思
而是說String類中存儲的char[]是final的,不能修改,你對String的操作實際上是產生了一個新的String,對於某一個String來說,長度就是固定的了
『伍』 Java中String接受的最大字元串的長度是多少
數組最大的長度為Integer.MAX_VALUE
『陸』 java中string能比較大小嗎
字元串的比較用string.compareTo(str);不過不是單純的類似數字的比較大小。具體可以看源碼。
這個方法是作用:
1.從兩個字元串最開始位置匹配到兩個字元串較短的最後,即從0到Math.min(len1, len2),然後獲取每個位置的字元char1和char2,如果char1和char2不想等,返回char1-char2
2.如果0到Math.min(len1, len2)的位置的字元都相等,返回兩字元串長度的差,即length1-length2
具體來說
"a".compareTo("c")、"abc".compareTo("c")都返回-2。上述情況1
"abc".compareTo("abcdefg")返回-4。上述情況2
『柒』 Java中String類型有沒有長度的限制
嚴格來說,String確實有長度限制。
1、String內部使用一個char[]數組來存放字元串的內容,數組下標是整型(也可以參考String的構造方法String(char value[], int offset, int count) ,可以知道字元數量是用整型表示),整型(Java規定32位)表示範圍是2G,也就是說,Java數組最大的長度是2G,即字元串不能超過2G個字元。
2、Java的數組大小還有沒有別的限制?事實上數組大小不能超過Java堆的大小,而Java堆的最大尺寸可以通過啟動參數指定,如果Java堆開得足夠大,數組的最大長度是可以不斷增大的。
3、所以,理論上,字元串不能超過2G個字元,少於2G個字元都有可能。
『捌』 java中兩個字元串如何比較大小
有三種方法實來現
第一種直自接用字元串類的compareTo方法:
Stringt1="20131011";
Stringt2="20131030";
intresult=t1.compareTo(t2);
第二種是把這個日期字元串轉換成long:
SimpleDateFormatsdf=newSimpleDateFormat("yyyyMMdd");
Dated1=sdf.parse(t1);
Dated2=sdf.parse(t2);
longresult=d1.getTime()-d2.getTime();
第三種是把日期字元串轉換成整形int:
intint1=Integer.parseInt(t1);
intint2=Integer.parseInt(t2);
intresult=int1-int2;
註:result大於0,則t1>t2;
result等於0,則t1=t2;
result小於0,則t1<t2;
『玖』 Java中String類型有沒有長度的限制
嚴格來說,String確實有長度限制。
1、String內部使用一個char[]數組來存放字元串的內容,數組下版標是整型權(也可以參考String的構造方法String(char value[], int offset, int count) ,可以知道字元數量是用整型表示),整型(Java規定32位)表示範圍是2G,也就是說,Java數組最大的長度是2G,即字元串不能超過2G個字元。
2、Java的數組大小還有沒有別的限制?事實上數組大小不能超過Java堆的大小,而Java堆的最大尺寸可以通過啟動參數指定,如果Java堆開得足夠大,數組的最大長度是可以不斷增大的。
3、所以,理論上,字元串不能超過2G個字元,少於2G個字元都有可能。
『拾』 關於獲取Java的String[]大小問題
String[] day = new String[10];
for(int i =0; i < 10; i++)
day[i] = "day";
System.out.println(day.length);
這樣就可以了版權
List list = new ArrayList();
for(int i =0; i < 10; i++)
list.add("day");
System.out.println(list.size());