概述
String类表示字符串,Java程序中的所有字符串都作为此类的对象。String类不是基本数据类型,它是一个类。因为对象初始化默认值是null,所以String类对象的初始化默认值也是null。String是一种特殊对象,具有其他对象没有的一些特性。
- String字符串是常量,字符串的值在创建后不可更改。
- String类是最终类,不能被继承。
1.String类的概念
如何使用String类操作字符串呢?首先要定义并初始化字符串。String类包括以下常用构造方法。
- String(String s):初始化一个新创建的String对象,使其表示一个与参数相同的字符串序列。
- String(char[] value):创建一个新的String对象,使其表示字符数组参数中当前包含的字符序列。
- String(char[] value,int offset,int count):创建一个新的String对象,它包含取自字符数组参数的一个子数组的字符序列。offset参数是子数组第一个字符索引(从0开始建立索引),count参数指定子数组长度。
例如:
String name1 = new String("王云");
char[] charArray={'刘','静','涛'};
String name2 = new String(charArray);
String name3 = new String(charArray,1,2);//从'静'字开始,截取2个字符串,结果是"静涛"
实际上最常使用的创建String类字符串的方法如下:
Sting name1="王云";
String类提供了一个concat(String str)的方法,可以在String类字符串后面增加字符串。
class Test{
public static void main(String[] args){
String name=new String("王云");
name.concat("同学");
System.out.println(name);
}
}
注意:String类字符串是常量,字符串值在创建之后不能更改。concat(String str)方法输出的是,创建一个新的String字符串,将原来字符串的加上新增的字符串组合到一起成为一个新的字符串,重新开辟内存空间存储,与原来无关。
String类字符串创建后不可变,进行的赋值语句,只是重新创建一个String字符串而已。例如:
String name="张三";
System.out.println(name);
name="李四";
System.out.println(name);
输出:
张三
李四
原因如图所示:
2.String类的常用方法
- public char charAt(int index)
从字符串中返回指定索引处的字符值。
- public int length()
返回此字符串的长度。这里需要和获取数组长度区别开,获取数组长度是通过“数组名.length”获取的。
- public int indexOf(Stirng str)
返回指定子字符串在此字符串中第一次出现的索引。
- public int indexOf(String str,int fromIndex)
返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
- public boolean equalsIgnoreCase(Stirng another)
将此String与另一个String比较,不区分大小写。
- public boolean equals(Stirng another)
将此String与另一个String比较,区分大小写。
- public String replace(char oldChar,char newChar)
返回一个新的字符串,它是通过用newChar替换此处的字符串中出现的所有oldChar得到的。
注意:String类中方法的索引都是从0开始的。
- public boolean startsWith(String prefix)
判断此字符串是否是以指定前缀开始。
- public boolean endsWith(String suffix)
判断此字符串是否是以指定后缀结束。
- public String toUpperCase()
将此String中的所有字符都转换为大写。
- public String toLowerCase()
将此String中的所有字符都转换为小写。
- public String substring(int beginIndex)
返回一个从beginIndex开始到结尾的新的字符串。
- public String substring(int beginIndex,int endIndex)
返回一个从beginIndex开始到endIndex结尾(不含endIndex所指字符)的新字符串。
- public String trim()
返回字符串的副本,忽略原字符串前后的空格。
- public static String valueOf(基本数据类型参数)
返回基本数据类型参数的字符串表达形式。
- public String[] split(String regex)
通过指定的分隔符分隔字符串,返回分隔符后的字符串数组。
常使用的方法实例:
//length方法
String str = new String("asdfzxc");
int strlength = str.length();//strlength = 7
//指定字符的索引值
String str = "I am a good student";
int a = str.indexOf('a');//a = 2
int b = str.indexOf("good");//b = 7
int c = str.indexOf("w",2);//c = -1
int d = str.lastIndexOf("a");//d = 5
int e = str.lastIndexOf("a",3);//e = 2
//转换成字符数组,并找出指定索引的字符
String str = new String("asdfzxc");
char ch = str.charAt(4);//ch = z
//使用副本,去除空格
String str = " a sd ";
String str1 = str.trim();
int a = str.length();//a = 6
int b = str1.length();//b = 4
//替换指定字符或字符串
String str = "asdzxcasd";
String str1 = str.replace('a','g');//str1 = "gsdzxcgsd"
String str2 = str.replace("asd","fgh");//str2 = "fghzxcfgh"
String str3 = str.replaceFirst("asd","fgh");//str3 = "fghzxcasd"
String str4 = str.replaceAll("asd","fgh");//str4 = "fghzxcfgh"
//大小写转换
String str = new String("asDF");
String str1 = str.toLowerCase();//str1 = "asdf"
String str2 = str.toUpperCase();//str2 = "ASDF"
//分隔符使用
String str1 = new String("asdfzxc");
String str2 = str1.substring(2);//str2 = "dfzxc"
String str3 = str1.substring(2,5);//str3 = "dfz"
//比较字符串
String str1 = new String("abc");
String str2 = new String("ABC");
int a = str1.compareTo(str2);//a>0
int b = str1.compareToIgnoreCase(str2);//b=0
boolean c = str1.equals(str2);//c=false
boolean d = str1.equalsIgnoreCase(str2);//d=true
//增加字符串
String str = "aa".concat("bb").concat("cc");
//相当于String str = "aa"+"bb"+"cc";
最后
以上就是烂漫香菇为你收集整理的Java基础34-String类的全部内容,希望文章能够帮你解决Java基础34-String类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复