字符串声明
字符串是Java程序中经常处理的对象,Java语言中字符串必须包含在一对双引号(“”)之内,由双引号包围的都是字符串,不能作为其他数据类型来使用,如:“1+2”的输出结果不是3.
String str;//来声明字符串变量
声明字符串变量必须经过初始化才能使用,否则编译器可能会报错。
创建字符串
String类的创建方法有下:
String(char a[])
用一个字符数组来创建String对象String(char a[],int offset,int length)
提取字符串数组a中的一部分创建String对象,参数offset表示开始截取子楚川的位置,length表示长度。- 处理通过String类的构造方法,还可以通过字符串常量的引用赋值给一个字符串变量。
String s="abcd"
注意:只要“+”运算符的一个操作数是字符串,编译器就会将另一个操作数转换成字串形式,所以应谨慎地将其他数据类型与字符串相连。
字符串操作方法
indexOf(String s)
返回参数字符串s在制定字符串中首次出现的索引位置lastIndexOf(Strign str)
返回制定字符串最后一次出现的索引位置charAt(int index)
返回指定索引处的字符substring(int beginIndex)
返回的是从指定的索引位置开始,直到最后的子串substring(int beginIndex,int endIndex)
返回的是从指定的索引位置开始,到指定的结位置的子串trim()
返回字符串的副本,忽略前导空格和尾部空格replace(char oldChar,char newChar)
实现将指定的字符或字符串replace(),如果字符串oldChar没有出现在该对象表达式中的字符串序列中,则将原字符串返回startWith(String prefix)
判断当前字符串的前缀是否为参数指定的字符串endWith(String suffix)
判断当前字符串否以参数指定的字符串结尾- 对字符串的比较不能简单的用“==”,这个比较的时两个字符串的地址是否相同,即使两个字符串内容相同,两个对象的内存地址也是不同的。 应当使用
equals(String other)
或者equalsIgnoreCase(String other)
忽略大小写 compareTo(String otherStr)
为按照字典序比较两个字符串该比较基于字符串中各个字符的Unicode值,按字典顺序将此String对象表示的字符序列于参数字符串所表示的字符序列进行比较。如果按照字典序此String对象位于参数String 之前,则比较结果为一个负整数,如果在其之后,结果是一个正整数,如果相等,返回0toLowerCase()
转换成为小写,如果没有应该被转换的字符,返回原字符串toUpperCase()
转换成为d大写,如果没有应该被转换的字符,返回原字符串spilt(String sign)
根据给定的分隔符也可以是正则表达式,将字符串分割为若干个字符串,返回字符串数组spilt(String sign,int limit)
根据给定的分隔符或正则表达式,将字符串分割为若干个字符串,只分割前limit次返回字符串数组
public class Str {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s ="192.168.1.1";
String[] res =s.split("\\.");
String[] res2 =s.split("\\.",2);
for(String st:res) System.out.print("["+st+"] ");
System.out.println();
for(String st:res2) System.out.print("["+st+"] ");
}
}
16. format(String format,Object ...args)
该方法使用指定的格式字符串和参数返回一个格式化字符串,格式化后的新字符串使用本地默认的语言环境(English | 汉语)。
17. format(Local l,String format,Object ...args)
l:格式化过程中要是使用的语言环境,l为null则不进行本地化,format:格式字符串,args:格式化字符串中由格式说明符引用的参数,如果还有格式说明符意外的参数,则忽略这些额外的参数,这些额外的参数。此参数的输不是可变的,且可以时0
常用的地方时在时间日期的输出:
public class Str {
public static void main(String[] args) {
// TODO Auto-generated method stub
Date day = new Date();
String s=String.format("%tc", day);
System.out.print(s);//2008-03-25
}
}
字符串生成器
创建成功的字符串对象,其长度是固定的,内容不能被改变和编译。虽然使用“+”可以达到附加新字符串或字符串的目的,但“+”会产生一个新的String实例,回在内存中创建新的字符串对象。如果重复地对字符串进行修改,将极大地增加系统开销。使用可变的字符序列String-Builder类,大大提高频繁增加字符串的效率。
append(content)
该方法向字符串生成器中追加内容,可以是任何类型的数据或者其他对象。insert(int offset,arg)
该方法向字符串生成器中的指定位置插入数据内容,可以是任何类型的数据的不同重载形式,可实现向字符串中插入int,boolean,char和float等基本数据类型或其他对象。delete(int start,int end)
移除此序列的子字符串中的字符。该子字符串从指定的start处开始一直到索引end-1处的字符,如果不存在,则一直到序列尾部。如果start=end,不做任何更改。