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());