String类
String是引用数据类型;字符串是String类的对象
String类的构造方法
共有13种重载方式,这里只示例常用的几个
String():创建一个空字符串
String(String original):新建一个字符串作为指定字符串的副本
String(char[] value):根据字符数组构造一个新字符串
String(byte[] tytes):通过转换指定的字节数组新建一个字符串
String类的方法
只示例常用的几种,详情请见API
字符串长度
length():该方法返回字符串中有效字符的个数,返回值是int型
字符串比较
==运算符:比较两个引用是否指向同一个对象,返回值是boolean型
equals()方法:比较两个字符串中的内容是否相同,返回值是boolean型
startsWith(String prefix):判断此字符串是否以指定的前缀prefix开头,返回值是boolean型
endsWith(String suffix):判断当前字符串是否以字符串suffix为后缀,返回值是boolean型
equalsIgnoreCase(String anotherString):将此String与另一个anotherString比较,不考虑大小写,返回值是boolean型
compareTo(String anotherString):根据ASCII码比较字符串anoterString和当前字符串的大小,返回值是int型
字符串搜索
搜索char字符类型
indexOf(int ch):查找字符ch在当前字符串中第一次出现处的索引,没有出现返回-1,返回值是int型
lastIndexOf(int ch):查找字符ch在当前字符串中最后一次出现的索引,没有出现返回-1,返回值是int型
indexOf(int ch , int fromIndex):查找字符ch在当前字符串中第一次出现处的索引,从指定的索引开始搜索,返回值是int型
搜索String字符串类型
indexOf(String str):查找字符串str在当前字符串中第一次出现的索引,没有出现返回-1,返回值是int型
lastIndexOf(String str):查找字符串str在当前字符串中最后一次出现的索引,没有出现返回-1,返回值是int型
indexOf(String str , int fromIndex):查找字符串str在当前字符串中第一次出现处的索引,从指定的索引开始搜索,返回值是int型
字符串提取
charAt(int index):提取指定索引index位置的char值,返回值是char型
substring(int index):提取从指定索引index位置开始的字符串部分,获得一个新的字符串(当前字符串的子串),返回值是String型
substring(int begin, int end):提取从指定索引index到end位置结束的字符串部分,获得一个新的字符串(当前字符串的子串),返回值是String型
concat(String str):用于连接两个字符串,将指定字符串连接到此字符串的结尾,返回值是String型
replace(char oldChar, char newChar):将字符串中出现的oldChar字符替换成newChar字符,返回值是String型
replaceAll(String regex, String replacement):将字符串中出现的regex字符串替换成replacement字符串,返回值是String型
String trim():返回字符串的副本,忽略前导空白和尾部空白,返回值是String型
更改字符串的大小写
toUpperCase():返回当前字符串的全大写形式,返回值是String型
toLowerCase():返回当前字符串的全小写形式,返回值是String型
字符串的数据格式转换
getBytes():将当前字符串转化成byte型的字节数组(即字符串在内存中保存的最原始的二进制形态),返回值是一个byte[]数组
toCharArray():将当前字符串转换为char型的字符数组,返回值是char[]数组
字符串的数据类型转换
Object类型转String类型
示例:Object o = "123"; String s = (String) o; 强制转换
Object o = 123; String s = String.valueOf(o); 使用String.valueOf方法
String类型转int类型
示例:String s = "123"; int i = Integer.parseInt(s); 使用包装器类Integer.parseInt()方法
代码示例
1 package summary2; 2 3 //String类 4 class Test 5 { 6 void test1 () 7 { 8 String s1; //声明一个String类型属性 9 String s2="张三",s3="18岁"; //同时声明多个属性并赋初值 10 s1 = "学习Java中的String类"; //声明后赋值 11 String s = s2.concat(s3); //用contcat方法连接两个字符串 12 System.out.println(s+s1); //打印两个字符串输出三个字段 13 } 14 void test2 () 15 { 16 String bi1 = new String("String"); //创建一个String对象并赋值 17 String bi2 = new String("String"); //创建一个String对象并赋值 18 boolean b1 = bi1==bi2; //比较的是虚地址,返回false 19 boolean b2 = bi1.equals(bi2); //比较的是对象内容,返回true 20 System.out.println("用==比较的是"+bi1+"和"+bi2+"的虚地址:结果返回"+b1); 21 System.out.println("用equals比较的是"+bi1+"和"+bi2+"内容:结果返回"+b2); 22 } 23 void test3 () 24 { 25 char[] ch = {'t','i','m','e'}; //声明一个字符数组并赋值 26 byte[] by = {-60,-6,-70,-61}; //声明一个字节数组、存放的是字符编码 27 String str1 = new String(); //创建一个空的字符串 28 String str2 = new String(ch); //根据指定字符数组构造一个新字符串 29 String str3 = new String(by); //转换指定的字节数组新建一个字符串 30 String str4 = new String(str2); //利用指定String对象创建新的副本 31 System.out.println(str1+str2+str3+str4); 32 } 33 void test4 () 34 { 35 String s = "2017年Jack刚满17岁"; //注意字符串的下标是从0开始、索引最大值=长度-1 36 System.out.println(s.length()); //获取字符串长度:14 37 System.out.println(s.charAt(13)); //取得最后一个索引位置13的值:岁 38 System.out.println(s.substring(0,5)); //截取下标0-4的值:2017年 39 System.out.println(s.substring(5)); //截取下标8以后的值:Jack刚满18岁 40 System.out.println(s.replace('7','8')); //替换字符串中的指定字节、输出新的副本 41 System.out.println(s.replaceAll("Jack","张三")); //替换字符串中的指定字符 42 } 43 void test5 () 44 { 45 String s = "English"; 46 byte[] b = s.getBytes(); //将当前字符串转化成byte型的字节数组 47 char[] c = s.toCharArray(); //将当前字符串转换为char型的字符数组 48 System.out.println(b); 49 System.out.println(c); 50 } 51 void test6 () 52 { 53 Object o = 931; //创建一个Object类,存放int型数据 54 String s = String.valueOf(o); //Object转换成String型,使用valueOf方法 55 int i = Integer.parseInt(s); //String转int型,使用包装器类的方法 56 System.out.println(i); 57 } 58 } 59 public class StringClass 60 { 61 public static void main(String[] args) 62 { 63 Test T = new Test(); 64 T.test1(); //String的声明和赋值 65 T.test2(); //String的比较 66 T.test3(); //String的构造方法 67 T.test4(); //String的长度、字符获取 68 T.test5(); //String的数据格式转换 69 T.test6(); //String的数据类型转换 70 } 71 }
浙公网安备 33010602011771号