JAVA: String详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA: String详解相关的知识,希望对你有一定的参考价值。

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详解的主要内容,如果未能解决你的问题,请参考以下文章

java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常(代码片段

Failed to convert property value of type ‘java.lang.String‘ to required type ‘int‘ for property(代码片段

Jsp获取Java的重定向赋值(String)

java Ftp上传创建多层文件的代码片段

Java String详解

11.按要求编写Java应用程序。 创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)减速(车速自减)修改车牌号,查询车的(代码片段