字符串的用法;
// 根据字节数组创建字符串
byte[] by = { 'a', 'b', 'c', 'd' }; String newByteString = new String(by);
1,length() 获取字符串的长度
// "根据字节数组创建字符串的长度为
int len = newByteString.length(); System.out.println("根据字节数组创建字符串的长度为:" + len);
2,codePointAt(int index)
// 返回指定索引处的字符(Unicode 代码点)。
int codePointat = newByteString.codePointAt(2); System.out.println("返回指定索引处的字符(Unicode 代码点)" + codePointat);
3,codePointBefore(int index)
// 返回指定索引的前一个字符的编码(Unicode 代码点)
int codePointatbefore = newByteString.codePointBefore(2); System.out.println("返回指定索引的前一个字符的编码(Unicode 代码点)" + codePointatbefore);
4,codePointCount(int beginIndex, int endIndex)
// 返回此 String 的指定文本范围中的 Unicode 代码点数。
int codePointcount = newByteString.codePointCount(0, 3); System.out.println("返回此 String 的指定文本范围中的 Unicode 代码点数。" + codePointcount);
5,toLowerCase()
// 将字符串转成小写
String tolower = newByteString.toLowerCase(); System.out.println("字符串转成小写" + tolower);
6,toUpperCase();
// 将字符串转成大写
String toUpper = newByteString.toUpperCase(); System.out.println("字符串转成大写" + toUpper);
7,substring(int beginIndex)
// 截取字符串,输入要截取的开始位置
String sub = newByteString.substring(0); System.out.println("要截取的开始位置" + sub);
8,substring(int beginIndex, int endIndex)
// 在截取的开始位置和结束位置0 <=subStratEnd<2
String subStratEnd = newByteString.substring(0, 2); System.out.println("截取的开始位置和结束位置" + subStratEnd);
9, subSequence(int beginIndex, int endIndex)
// 返回一个新的字符序列,它是此序列的一个子序列。此用法和substring(0, 2)相似;
CharSequence Charsequence = newByteString.subSequence(0, 2); System.out.println("返回一个新的字符序列" + Charsequence);
10,startsWith(String prefix)
//测试此字符串是否以指定的字符开头 true是 false否
boolean b= newByteString.startsWith("a"); System.out.println(b);
11,startsWith(String prefix, int toffset)
// 测试此字符串从指定索引开始的子字符串是否以指定前缀开始
String str ="a"; boolean c = newByteString.startsWith(str,0); System.out.println("定索引开始的子字符串"+c);
12,indexOf(int ch)
//测试某字符在字符串中第一次出现的位置
int indexof = newByteString.indexOf("b"); System.out.println("测试某字符在字符串中第一次出现的位置"+indexof);
13, indexOf(String str)
//测试str字符串中的字符在newByteString字符串第一次出现的位置
int index = newByteString.indexOf(str); System.out.println(index);
14,trim()
//返回此字符串的内容,忽略前导空白和尾部空白。
String Trim=newByteString.trim(); System.out.println(Trim);
15,判断字符串是否为空 isEmpty();
16,将字符串转成字符 toCharArray()
17,获得字符串中的字节 byte[] getBytes()
18,比较两个字符串是否相等 equals(Object anObject)
创建String对象
byte[] by = { 'a', 'b', 'c', 's' };
// String()
// 初始化一个新创建的 String 对象,使其表示一个空字符序列。
// String string = new String();
// String(byte[] bytes)
// 通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。
// String string = new String(by);
// String(byte[] bytes, int offset, int length)
// 通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String。
// String newString = new String(by, 1, 2);
// System.out.println(newString);// bc
String常见的问题:
1,字符串相等
String a = new String("Java"); String b = new String("Java"); System.out.println(a==b); String aa = "Java"; String bb ="Java"; System.out.println(aa ==bb);
结果:
false new出来的两个地址
true 变量是放在常量池中的aa,bb都引用这个地址
2,字符串相+ 的问题
String aa = "java";
String bb = "c";
String dd = "javac";
String cc = aa+bb;
System.out.println(cc==dd); false
false
String aa = "java"; String bb = "c"; String dd = "aabb"; String cc = "aa"+"bb"; System.out.println(cc==dd);
true