------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
String类
概述:
Java 程序中的所有字面值(string literals),即双引号括起的字符串,如"abc",都是作为String类的实例实现的。String是常量,其对象一旦构造就不能再被改变。换句话说,String对象是不可变的,每一个看起来会修改String值的方法,实际上都是创造了一个全新的String对象,以包含修改后的字符串内容。String对象具有只读特性,指向它的任何引用都不可能改变它的值,因此,也不会对其他的引用有什么影响。
初始化字符串初始化后就不可以被改变。
String str1 = "abc"
String str2 = new String("abc")
这两者之间的区别
str1在内存中有一个对象("abc")。
str2在内存中有两个对象("abc"、"String") :String str2= new String(“abc”);实际上创建了两个String对象,一个是”abc”对象,存储在常量空间中,一个是使用new关键字为对象str2申请的空间。
String的常见操作:
1.获取
1.1获取字符串中字符数,也就是字符串的长度。
int length():返回字符串的长度。
1.2根据指定位置获取字符串中的字符。
char charAt(int index):返回指定位置index的字符。
1.3获取字符串的字串
String substring(int beginIndex):返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符串末尾。
String substring(int beginIndex,int endIndex):返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的beginIndex处开始,直到索引endIndex-1处的字符。
1.4根据字符获取字符在字符串的位置。
indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引。
indexOf(int ch, int fromIndex):返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引。
int indexOf(String str,int fromIndex):返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
int lastIndexOf(int ch):返回指定字符在此字符串中最后一次出现处的索引。
int lastIndexOf(int ch, int fromIndex):返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引。
int lastIndexOf(String str,int fromIndex):返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。
2判断
2.1 判断字符串中是否包含某一个字串。
boolean contains(CharSequence s):当且仅当此字符串包含指定的char值序列时,返回true。
2.2 判断字符串是否有字符。
boolean isEmpty():当且仅当length()为0时返回true。
2.3 判断字符串是不是以指定内容开头。
boolean endsWith(String suffix):判断此字符串是否以指定的后缀结束。
2.4 判断字符串是不是以指定内容结尾。
boolean startsWith(String prefix):判断此字符串是否以指定的前缀开始。
2.5 判断字符串的内容是否相等。
boolean equals(Object anObject):将此字符串与指定的对象比较。
boolean equalsIgnoreCase(String anotherString):将此String与另一个String 比较,不考虑大小写。如果两个字符串的长度相同,并且其中的相应字符都相等(忽略大小写),则认为这两个字符串是相等的。
3转换
3.1 将字符串转换成字符数组。
char[] toCharArray():将此字符串转换为一个新的字符数组。
3.2 将字符数组转换成字符串。
String 构造函数:
String(char[] value)
将字符数的一部分转换为字符串
String(String(char[] value, int offset,int count):value-作为字符源的数组、offset-初始偏移量、count-长度。
静态方法:
static String copyValueOf(char[] data):返回指定数组中表示该字符序列的String。
static String copyValueOf(char[] data,int offset,int count):返回指定数组中表示该字符序列的String,data-作为字符源的数组、offset-初始偏移量、count-长度。
3.3 将字符串转换成字节数组。
byte[] getBytes():使用平台的默认字符集将此 String编码为byte序列,并将结果存储到一个新的 byte 数组中。
byte[] getBytes(Charset charset):使用给定的charset将此String编码到byte序列,并将结果存储到新的byte数组。
3.4 将字节数组转换成字符串。
String 构造函数:
String(byte[] bytes)
将字节数组的一部分转换为字符串
String(byte[] bytes, int offset,int length):byte-作为字节源的数组、offset-初始偏移量、length-长度。
3.5 将基本数据类型转换为字符串。(int、float、double、object、char、char[]、boolean)
static String valueOf(基本数据类型 类型变量)
4替换
4.1 String replace(char oldChar,char newChar):返回一个新的字符串,它是通过用newChar替换此字符串中出现的所有oldChar得到的。
5切割
5.1 String[] split(String regex):返回根据regex切割的字符串数组。
6转换大小写、比较、去空格
6.1 String toLowerCase():使用默认语言环境的规则将此String中的所有字符都转换为小写。
6.2 String toUpperCase():使用默认语言环境的规则将此String中的所有字符都转换为大写。
6.3 String trim():将字符串两端的空格去掉。
6.4 int compareTo(String anotherString):对两个字符串进行自然顺序的比较。
字符串的简单操作
示例代码:
package StringDemo;
public class StringDemo
{
//去掉字符串两端的空格。
public static String trim(String str)
{
int start = 0;
int end = str.length()-1;
while(start<=end && str.charAt(start)==' ')
start++;
while(start<=end && str.charAt(end)==' ')
end--;
return str.substring(start, end);
}
//字符串反转
public static String reverse(String str)
{
char[] ch = str.toCharArray(); //获取
for(int start=0,end=ch.length-1;start<end;start++,end--)
{
char temp = ch[start];
ch[start] = ch[end];
ch[end] = temp;
}
return new String(ch);
}
//获取两个字符的最大相同字符串。
public static String GetMaxSubstring(String s1, String s2)
{
String MaxString = (s1.length()>s2.length())?s1:s2;
String MinString = (MaxString==s1)?s2:s1;
for(int x=0; x<MinString.length(); x++)
{
for(int y=0 , z=MinString.length()-x; z!=MinString.length()+1; y++, z++)
{
String temp = MinString.substring(y, z);
//sop(temp);
if(MaxString.contains(temp))
{
return temp;
}
}
}
return "失败";
}
//分割文件名的扩展名和文件名。
public static void subString(String str)
{
int index = str.lastIndexOf('.'); //得到"."在字符串中最后出现的位置。
String name = str.substring(0, index); //把字符串的index位置以下的字符截取出来就是文件名字。
String file = str.substring(index+1, str.length()); //把字符串的index+1到字符串的最后位置截取出来就是文件的扩展名。
sop(name);
sop(file);
}
public static void sop(String str)
{
System.out.println(str);
}
public static void main(String[] args)
{
String str = "asd.java";
sop(trim(str));
sop(GetMaxSubstring(str, "as"));
subString(str);
subString(str);
}
}