java中的字符

1.字符串的不变性

    String 对象创建后则不能被修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不同。

String s1="爱慕课";

String s2="爱慕课";

String s3=new String("爱慕课");

String s4=new String("爱慕课");

system.out.println(s1==s2);//多次出现的字符串常量,java编译器只创建一个

system.out.println(s1==s3);//s1和s3是不同对象

system.out.println(s3==s4);//s3和s4是不同对象

运行结果:

true  

false

false

注:如果想要比较两个字符串的内容是否相同,应使用”equals()”方法。

string类的常用方法

int length()  返回当前字符串长度

int indexOf(int ch) 查找ch字符在该字符串中第一次出现的位置

int indexOf(String str) 查找str子字符串在该字符串中第一次出现的位置

int lastIndexOf(int ch)  查找ch字符在该字符串中最后一次出现的位置

int lastIndexOf(String str)  查找str子字符串在改字符串中最后一次出现的位置

String substring(int beginIndex)  获取从beginIndex位置开始到结束的子字符串

String substring(int beginIndex , int endIndex) 获取从beginIndex位置开始到endIndex位置的子字符串

String trim()  返回去除了前后空格的字符串

bolean equals(Object obj)   将字符串与指定对象比较,返回true或者false

String toLowerCase()  将字符串转换为小写

String toUpperCase()  将字符串转换为大写

char charAt(int index)  获取字符串中指定位置的字符

String [ ] split (String regex,int limit)  将字符串分割为子字符串,返回字符串数组

byte [ ] getBytes()  将字符串转换为byte数组

当频繁操作字符串时,就会额外产生很多临时变量。使用 StringBuilder 或 StringBuffer 就可以避免这个问题。至于 StringBuilder 和StringBuffer ,它们基本相似,不同之处,StringBuffer 是线程安全的,而 StringBuilder 则没有实现线程安全功能,所以性能略高。因此一般情况下,如果需要创建一个内容可变的字符串对象,应优先考虑使用 StringBuilder 类。

定义StringBuilder类的对象

StringBuilder str1=new String StringBuilder();

StringBuilder str2=new String StringBuilder("imooc");

System.out.println(str2);

StringBuilder append (参数)  追加内容到当前StringBuilder对象的末尾

StringBuilder insert(位置,参数)  将内容插入到StringBuilder对象的指定位置

String toString()                将StringBuilder对象转换为String对象

int length()                         获取字符串的长度

代码实例:

StringBuilder str=new StringBuilder("hello");

str.append("imooc");

str.append(520);

System.out.println("插入前:”+str.length());

str.insert(11,"!");

string str2=str.toString();

System.out.println("插入后:”+str2);

运行结果:

插入前:hello imooc520;

插入后:hello imooc!520;

 

posted @ 2016-08-03 16:47  Dante无心  阅读(149)  评论(0编辑  收藏  举报