JAVA基础复习:字符串相关

String是最常用的一个操作,有必要完全掌握下;

Java对象的引用,用来操纵内存元素。例如:String s;//创建一个String类型的引用
对象的引用与对象关联——初始化,例如:s = "abc";//Java语言特性,String可以用带引号的文本初始化。
更通用的初始化,创建对象,例如:s = new String("abc");——《Thinking in Java》


1、String,StringBuffer,StringBuilder 


三者的区别:

String:不可变的对象,意思就是对String对象进行改变的时候其实都等同于生成了一个新的String对象,然后将引用指向新的String对象,原String对象GC回收。

StringBuffer 字符串变量(线程安全),适用于多线程程序中,保证同步性。

StringBuilder 字符串变量(非线程安全),适用于单线程程序中,不保证同步性。简要的说, String 类和 StringBuffer/StringBuilder 类的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类进行改变的   时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String 


稍微总结下:

如果要使用相同内容的字符串,不必每次去new一个对象,要么就在构造器里面初始化,要么定义成类的一个常量;

大量字符串操作的情况下,最好不用String;(如果不是很大的话,那就用String好了)

而此时,如果需要字符串变量线程安全,那么就用StringBuffer类;

如果没有线程同步的要求,那么最好用StringBuilder类


2、Java中String类的常用方法:

public char charAt(int index)
返回字符串中第index个字符;


public int length()
返回字符串的长度;

注:数组没有length()方法,有length属性


public int indexOf(String str)
返回字符串中第一次出现str的位置;


public int indexOf(String str,int fromIndex)
返回字符串从fromIndex开始第一次出现str的位置;


public boolean equalsIgnoreCase(String another)
比较字符串与another是否一样(忽略大小写);


public String replace(char oldchar,char newChar)
在字符串中用newChar字符替换oldChar字符


public boolean startsWith(String prefix)
判断字符串是否以prefix字符串开头;


public boolean endsWith(String suffix)
判断一个字符串是否以suffix字符串结尾;


public String toUpperCase()
返回一个字符串为该字符串的大写形式;


public String toLowerCase()
返回一个字符串为该字符串的小写形式


public String substring(int beginIndex)
返回该字符串从beginIndex开始到结尾的子字符串;


public String substring(int beginIndex,int endIndex)
返回该字符串从beginIndex开始到endsIndex结尾的子字符串


public String trim()
返回该字符串去掉开头和结尾空格后的字符串


public String[] split(String regex)

按照设定的分隔符进行分割

参考:http://www.cnblogs.com/mingforyou/archive/2013/09/03/3299569.html


3、正则表达式


[abc]      和a|b|c作用一样

{}  表示个数 
{m,n}个数从m到n
()  结合的作用
^ 表示一行的起始

$ 一行的结束

+  相当于{1,}
?    相当于{0,1}
*   相当于{0,}

\w  词字符 [a-zA-Z0-9]

\d    数字[0-9]

\D   非数字[^0-9]

遇到需要转义的就要转义,\d这种可能要写成\\d

正则里面全部用\,不要用正斜杠

public static final String MOBILE ="^(13[0-9]|15[0-9]|18[0-9]|17[0-9])\\d{8}$";

表示:13、15、18、17开头的号码,总共是11位;

也可以写成 

public static final String MOBILE ="^(13|15|18|17)\\d{9}$";

参考  http://blog.csdn.net/jarvis_java/article/details/5949096   这个里面有些斜杠的错误,用的时候改过来


4、问号表达式

一句话:expression1 ? expression2 : expression3,的用法,如果expression1表达式的值为真,则取expression2的值,否则取expression3的值


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值