歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java String常見十大問題

Java String常見十大問題

日期:2017/3/1 9:52:28   编辑:Linux編程

Technorati 標記: String,java

一、如何判斷兩個String是否相等??使用”==“還是使用”equals()“?

對String來說,”==“是用來判斷兩個字符串(對象)的地址是否相同,即判斷是否是同一個字符串的應用。”equals()“則是判斷兩個字符串(對象)的值是否相等,如果相等則返回true。一般情況下,都是使用”equals()“來判斷兩個字符串的值是否相等,只有當你需要判斷兩個字符串是否是同一個對象時,才使用”==“。

String str1 = "abc";
String str2 = "abc";
String str3 = new String("abc");
System.out.println(str1 == str2);	//true
System.out.println(str1 == str3);	//false
System.out.println(str1.equals(str3));	//true

Java String與Blob類型數據轉換 http://www.linuxidc.com/Linux/2012-11/73761.htm

需要了解更多關於java內存管理分配的,可以點擊 http://www.linuxidc.com/Linux/2013-10/90925.htm 。

二、如何實現String與基本數據類型的裝換

首先了解一下如何將String轉換為基本的數據類型。8個wrapper class(Integer,Double….)提供了相對應的方法parseXxx(String str)將字符串轉換為基本的數據類型,如下:

String str1 = "123";
String str2 = "12.3";
String str3 = "true";
int a = Integer.parseInt(str1);	//123
double d = Double.parseDouble(str2);	//12.3
boolean flag = Boolean.parseBoolean(str3);	//true

也許會見過使用valueOf()的轉換,如下:

String str1 = "123";
String str2 = "12.3";
String str3 = "true";
int a = Integer.valueOf(str1);	//123
double d = Double.valueOf(str2);	//12.3
boolean flag = Boolean.valueOf(str3);	//true

這種形式也行,只不過沒有直接使用parseXxx()好,因為Integer.valueOf()返回的是Integer類型,再通過自動集裝箱轉換為基本數據類型,其方法原型如下:

public static Integer valueOf(String s)

注意的是,方法Boolean.parseBoolean(String str),只有在str為字符串“true”時(忽略大小寫),才會返回true。換句話說就是其他字符串都是返回false。Boolean.parseBoolean(“yes”)將返回false。接著下來看一下如何將基本數據類型轉換為String,可以使用String.valueOf()方法進行轉換,如下:

int a = 123;
double b = 13.05;
boolean flag = true;
String str1 = String.valueOf(a);	//123
String str2 = String.valueOf(b);	//13.05
String str3 = String.valueOf(flag);	//true


同時還有著更為簡單快捷的方式,直接在基本數據類型之後添加“ ”,如下;

String str1 = a +"";	//a
String str2 = flag + "";	//true


最後談一下wrapper class的轉換,同樣可以將基本數據類型轉換為String,如下:

int a = 123;
boolean flag = true;
String str1 = Integer.toString(a);	//123
String str2 = Boolean.toString(flag);	//true

事實上,String.valueOf()方法也是調用了各種wrapper class的toString()方法,如下。只不過String.valueOf()用起來會方便一點,因為不需要去判斷數據屬於哪一種類型。

public static String valueOf(double d) {
	return Double.toString(d);//其余的轉換都與之類似
    }

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2013-10/90926p2.htm

Copyright © Linux教程網 All Rights Reserved