Java常用实用类学习——String类
String类是java中用于处理字符序列的类。String类在java.lang包中,java把String类定义为final类,用户不能拓展String类,即String类不能有子类。
构造String对象
String对象习惯地被翻译为字符串对象。
常量对象
1 | String hi = "你好"; |
Java把用户程序的String常量都放在常量池,所以hi和hello的引用和实体是相同的
String对象
1 | String s = new String("hello"); |
使用String类声明对象并创建对象,凡是new运算符构造构造出的对象都不放在常量池中,所以,尽管s和t的实体是相同(s.equals(t)的值是true),但二者引用不同( s==t 结果是false)。
String类还有两个常见方法
- String(char a[]);
1 | char a[] = {'h','i'}; |
- String(char a[],int startIndex,int count);
提取字符数组a中的一部分字符创建对象,startIndex和count是截取的起始位置和截取长度
1 | char a[] = {'你','好','呀'}; |
不可变对象
对象的变量中存储的值不能再发生变化,原因是String是final类,String类也没有给其对象提供修改实体的方法。
String对象的并置
String对象可以使用”+“进行并置运算,即首尾相接得到一个新的String对象。
- 参与并置运算的String对象中有一个是变量,那么就会得到新的引用和实体
- 参与并置运算的对象都是常量,那么得到的仍然是常量
1 | String hello = "你好"; |
String类的常用方法
public int length();
String类中的length()方法来获取一个String对象的字符序列的长度。
1 | String s = "戈仑石人"; |
public boolean equals(String s);
调用该方法比较当前String对象的字符序列是否与参数s指定的String对象的字符序列相同(比较实体是否相同)
1 | String s1 = "加农炮"; |
public boolean startsWith(String s);
判断当前对象的字符序列前缀是否为参数指定的s
1 | String s = "每张卡牌生来平等,皇家巨人也不例外"; |
public boolean endWith(String s);
判断当前对象的字符序列后缀是否为参数指定的s
1 | String s = "每张卡牌生来平等,皇家巨人也不例外"; |
public int compareTo(String s);
对象调用该方法按字典序与参数s的字符序列比较大小。相同返回0,大于s返回正值,小于s返回负值。
1 | String s = "abcde"; |
public boolean contains(String s);
判断当前对象中是否包含参数s中的字符序列
1 | String s = "瓦基丽武神"; |
public int indexOf(String s);
从0位置开始索引首次出现参数s出现位置,并返回该位置,如果没有检索到则返回-1
1 | String s = "上海自来水来自海上"; |
public int lastIndexOf(String s);
从0位置开始索引最后一次出现参数s出现位置,并返回该位置,如果没有检索到则返回-1
1 | String s = "上海自来水来自海上"; |
public String substring(int startpoint);
复制从位置startpoint到最后位置上的字符到新的字符序列。
1 | String s1 = "我喜欢唱、跳、rap、篮球"; |
PS:substring(int start,int end)为复制从start位置至end-1位置
public String trim();
调用该方法将得到一个新的对象,该对象是当前对象的字符序列去掉前后空格的字符序列
String对象与基本数据的相互转换
将String转换为基本型
使用Java.lang包中的Integer类调用其类方法***public static int parseInt(String s)***可以将由”数字“字符组成的字符序列转化为int型数据。
1 | int x; |
类似,使用java.lang包中的Byte、Short、Long、Float、Double类调用相应的类方法
1 | Floatpublic static byte parseByte(String s) throws NumberFormatException |
将基本型转换为String对象
可以使用以下String类的类方法
1 | public static String valueOf(byte n) |
例:
1 | String s1 = String.valueOf(1234); |
基本型数据的进制表示
可以把整形数据(例如int、long型数据的二进制、八进制、或十六进制)转换成String对象,即让String对象封装的字符序列是int或long型数据的二进制、八进制或十六进制。
Integer和long类的下列类方法返回整数的进制的String对象表示(负数返回补码),即返回的String对象封装的字符序列是参数的相应进制
1 | public static String toBinaryString(int i) //二进制 |
关于main()方法的参数化
使用解释器java.exe执行程序来执行主类时,从键盘输入若干字符序列 ,用空格分开,它们分别对应args[0]、args[1]、args[2]……
对象的String表示
所有的类都默认是java.lang包中Object类的子类或间接子类。Object类有一个public String toString()方法,一个对象调用该方法返回String对象的字符序列的一般形式为
1 | 创建对象的类的名字@对象的引用 |