String介绍一
String类位于:java.lang
String类继承于Object类,实现了Serializable; CharSequence;Comparable<String>
接口,表示String为可序列化可比较的字符序列。并String类被final修饰,是不可被继承的。
String类提供了一系列对不可变字符序列操作的方法
String的本质:为char数组
String的特点:
(1)不可变字符序列。 这里的不可变指的是:一旦定义了一个String类的变量后,就不能
直接在原有值的基础上进行追加;插入;删除等操作
(2)利用String类中的方法对字符串进行操作,都会产生一个新的String类的副本,副本
与原字符串是相互独立的
(3)对副本或原字符串的修改不会影响到另外一个
String类中常用的方法:
(1) charAt(int index) 通过指定index索引值,从被搜索字符串中找到对应位置处的char值
(参见:cn.com.string.charAt)
注意:index应当大于0,小于被搜索字符串的长度(str.length())
(2) compareTo(String otherString) 与 compareToIgnoreCase(String otherString)
相同点:比较两个字符串大小(内部比较方式,请参见底层代码),如果调用该方法的字符串比被比较
字符串(otherString)大,那么,返回大于0的整数;如果两个字符串相等,那么,返回0;否则,
返回小于0的负整数
不同点:compareTo方法在比较的过程中,区分两个字符串的大小写;
compareToIgnoreCase方法在比较的过程中,忽略两个字符串的大小写
(参见: cn.com.string.compare)
(3) concat(String str) 将指定字符串str连接到调用该方法的字符串结尾部分,并形成一个新的字符串
注意:concat返回的字符串是通过原有两个字符串连接形成的,与原有字符串是完全独立的
(参见:cn.com.string.concat)
(4) contains(CharSequence s) 判断调用该方法的字符串中,是否包含了字符序列s。如果包含返回true;
否则返回false
注意:CharSequence是 CharBuffer, Segment, String, StringBuffer, StringBuilder
的父类,根据继承关系中的向上转型,CharBuffer, Segment, String, StringBuffer,
StringBuilder对象,都可以看作CharSequence来使用,即:作为contains方法的参数传递
(参见:cn.com.string.contains)
(5) copyValueOf(char[] data) 与 copyValueOf(char[] data,int offset,int count)
相同点: 将参数列表中的char[]数组对象data中包含的每个char值,链接组合成一个字符串
不同点: copyValueOf(char[] data)方法是对data中的所有元素进行组合;
copyValueOf(char[] data,int offset,int count)是根据offset指定的起始下标和
count指定的元素个数,对data中的部分元素进行组合
注意: copyValueOf都为静态方法,在使用的时候,直接通过String类名访问,不需要构建String类的对象
使用指定起始和个数的copyValueOf方法的时候,起始值和个数应该在data有效取值返回内
(参见:cn.com.string.copyValueOf)
String介绍二
String类中常用的方法:
(6) endWith(String suffix) 测试调用此方法的字符串是否以指定的后缀stuffix结束
如果是返回true;否则返回false
(参见:cn.com.string.endWith)
(7) equals(Object anObject) 与 equalsIgnoreCase(String anotherString)
相同点:都可用于比较两个字符串是否相等(内部比较方式,请参见底层代码),如果调用该方法的字符串与被比较
字符串(anotherString)相等,则,返回true;否则,返回false
不同点:equals方法在比较的过程中,区分两个字符串的大小写;
equalsIgnoreCase方法在比较的过程中,忽略两个字符串的大小写
(参见: cn.com.string.equals)
(8) getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
将调用该方法的字符串,从指定的srcBegin下标位置开始,到srcEnd下标位置结束
进行截取,并将截取后的子字符串转换为char型字符,存入到dst的char[]数组对象
中,并从指定的dstBegin小标位置开始进行复制
注意: dst的容量要在被复制的字符范围内,且dstBegin要能在dst的有效范围内
(参见:cn.com.string.getChars)
(9) indexOf(int ch) 与 indexOf(String str) 从左往右搜索指定字符或字符串,在调用该方法的字符串中第一次出现索引值
indexOf(int ch, int fromIndex) 与 indexOf(String str, int fromIndex)
从左往右以指定的下标位置(formIndex)开始,搜索指定字符或字符串在调用该方法的字符串中,第一次出现的索引值
(10) lastIndexOf(int ch) 与 lastIndexOf(String str) 从右往左搜索指定字符或字符串,在调用该方法的字符串中第一次出现索引值
lastIndexOf(int ch,int fromIndex) 与 lastIndexOf(String str,int fromIndex)
从右往左以指定的下标位置(formIndex)开始,搜索指定字符或字符串在调用该方法的字符串中,第一次出现的索引值
(11) isEmpty() 判断调用该方法的字符串是否为空(当且仅当 length() 为 0 时返回 true)
(12) length() 获取调用该方法的字符串中,具有的字符个数
(13) matches(String regex) 判断调用该方法的字符串是否与给定的正则表达式相匹配
注意:regex是以字符串形式出现的正则表达式(正则表达式参考资料:正则表达式 和 java.util.regex.Pattern
的API文档 和 常用正则表达式)
(参见:cn.com.string.matches)
(14) replace(char oldChar, char newChar) 与 replace(CharSequence target, CharSequence replacement)
将调用该方法的字符串中的原有字符(oldChar)或字符序列(target),替换为新的字符(newChar)或字符序列(replacement),
并产生一个新的字符串返回
注意:是对字符串中所有满足替换条件的oldChar或target进行替换操作
(参见:cn.com.string.replace)
(15) split(String regex) 根据指定的正则表达式匹配拆分调用该方法的字符串,形成一个String[]对象
注意:regex不仅可以是正则表达式,还可以是普通的字符串
(参见:cn.com.string.split)
(16) substring(int beginIndex) 与 substring(int beginIndex, int endIndex)
相同点:都是用于截取调用该方法的字符串的某一部分,形成一个子字符串
不同点:带一个参数的substring是从指定的起始位置开始取子字符串,到被取字符串结束位置
带两个参数的substring是从指定起始位置开始(包含起始点),到指定的目标位置(不包含目标位置)结束
(参见:cn.com.string.substring)