码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA: String详解

时间:2017-09-07 23:11:39      阅读:367      评论:0      收藏:0      [点我收藏+]

标签:...   ring   方法   pen   从后往前   rac   length   rar   ati   

String 类用来存储字符串 ,是不可变的。

1. 基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean 
他们之间的比较,应用双等号(==),比较的是他们的值。

2. 复合数据类型(类) 
当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。用 str.equals(str2) 方法来比较字符串的值是否相等。

3. length属性、length()方法、size()方法的区别:

  • length属性 - 针对数组,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性。
  • length()方法 - 针对字符串String,如果想看这个字符串的长度则用到length()这个方法。 
  • size()方法 - 针对泛型集合,,如果想看这个泛型有多少个元素,就调用此方法来查看。

如果要遍历一个字符串:

String s = "abcde";
strLen = s.length();//注意这里有括号

for (int i=0; i<strLen;i++){
    // ...
}

或者这样:

 for (char ch:s.toCharArray()){
      // ...
}

char 转换成 String:

String s = String.valueOf(ch); //效率最高的方法
String s = String.valueOf(new char[]{‘c‘}); //将一个char数组转换成String 
String s = Character.toString(‘c‘); // Character.toString(char)方法实际上直接返回String.valueOf(char) 
String s = new Character(‘c‘).toString();
String s = new String(new char[]{‘c‘});
String s = "" + ‘c‘; // 虽然这个方法很简单,但这是效率最低的方法

Java中的String Object的值实际上是不可变的,是一个final的变量。

所以我们每次对String做出任何改变,都是初始化了一个全新的String Object并将原来的变量指向了这个新String。

而Java对使用+运算符处理String相加进行了方法重载。

字符串直接相加连接实际上调用了如下方法:

new StringBuilder().append("").append(‘c‘).toString(); 

除了String,还可以使用 StringBuilder 类或 StringBuffer 类存储字符串,那么三者之间有什么区别呢?

String - 不可变,每次修改并不修改string本身,而会额外创建一个对象。当频繁操作字符串时,就会产生很多临时变量,严重影响性能。

StringBuffer - 可变,线程安全,性能略低。

StringBuilder - 可变,非线程安全,性能高。可优先考虑使用

StringBuilder 转为 String对象:

StringBuiler str = new StringBuilder();
String str2 = str.toString();

 

package test;
import java.lang.*;

public class test1 {
    public static void main(String[] args) {
        // 创建一个空的StringBuilder对象
        StringBuilder str = new StringBuilder();

        // 追加字符串
        str.append("jaewkjldfxmopzdm");

        // 从后往前每隔三位插入逗号
        for(int i=str.length()-3; i>=0;i=i-3){
            str.insert(i, ",");
        }

        // 将StringBuilder对象转换为String对象并输出
        System.out.print(str.toString());
    }
}

 

JAVA: String详解

标签:...   ring   方法   pen   从后往前   rac   length   rar   ati   

原文地址:http://www.cnblogs.com/dodocie/p/7487648.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!