经验
1
:
String
类中的
string.length()
方法,
String.getBytes().length
返回的值是不一样的。
例如:
String str = “
中123
喊a”;
str.length(); //返回6 字符串的长度为字符串里包含的字符的个数,中文字符按一个处理
str.getBytes().length //返回8 ,因为中文字占两个字节,
一个例子:
编一个函数,两个参数一个字符串,一个是要截取的字符串个数,按照数字对字符串的进行截取,如: ABC汉.数字是3则输出ABC,如果是4则还是输出ABC,不能输出半个汉字
实现如下
private static String cut(String str, int len)
{
String retstr = str.substring(0, Math.min(len, str.length()));
while(retstr.getBytes().length > len)
{
retstr = retstr.substring(0, retstr.length() - 1);
}
return retstr;
}
经验
2
:
String
类型的比较
“
==
”表示比较两个引用,比的是地址,比较两个变量是否引用的是同一个对象,如果要比较两个字符串的值是否相等要用
String.equals(String str);
例:
String str1 = “abcd”;
String str2 = “abcd”
此时
str1 == str2 // (true)
这是
str1 str2,
引用的是同一个对象,
str1.equals(str2) //true
因为两个的内容相等
如果:
String str1 = new String(“abcd”);
String str2 = new String(“abcd”)
此时
str1 == str2 // (false)
这是
str1 str2,
引用的是两个不同的对象,
str1.equals(str2) //true
因为两个的内容相等