Java™ 教程(字符串)

字符串

在Java編程中普遍使用的字符串是一系列字符,在Java編程語言中,字符串是對象。html

Java平臺提供String類來建立和操做字符串。java

建立字符串

建立字符串的最直接方法是編寫:編程

String greeting = "Hello world!";

在這種狀況下,"Hello world!"是一個字符串文字 — 代碼中的一系列字符,用雙引號括起來,每當它在代碼中遇到字符串文字時,編譯器就會建立一個帶有其值的String對象 — 在本例中爲Hello world!segmentfault

與任何其餘對象同樣,你能夠使用new關鍵字和構造函數建立String對象,String類有13個構造函數,容許你使用不一樣的源提供字符串的初始值,例如字符數組:api

char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' };
String helloString = new String(helloArray);
System.out.println(helloString);

此代碼段的最後一行顯示hello.數組

注意: String類是不可變的,所以一旦建立,就沒法更改 String對象, String類有許多方法,其中一些將在下面討論,彷佛能夠修改字符串,因爲字符串是不可變的,所以這些方法真正作的是建立並返回包含操做結果的新字符串。

字符串長度

用於獲取對象信息的方法稱爲訪問器方法,能夠與字符串一塊兒使用的一種訪問器方法是length()方法,它返回字符串對象中包含的字符數,在執行如下兩行代碼後,len等於17oracle

String palindrome = "Dot saw I was Tod";
int len = palindrome.length();

palindrome是一個對稱的單詞或句子 — 它向前和向後拼寫相同,忽略大小寫和標點符號,這是一個簡短而低效的程序來反轉palindrome字符串,它調用String方法charAt(i),它返回字符串中的第i個字符,從0開始計數。編程語言

public class StringDemo {
    public static void main(String[] args) {
        String palindrome = "Dot saw I was Tod";
        int len = palindrome.length();
        char[] tempCharArray = new char[len];
        char[] charArray = new char[len];
        
        // put original string in an 
        // array of chars
        for (int i = 0; i < len; i++) {
            tempCharArray[i] = 
                palindrome.charAt(i);
        } 
        
        // reverse array of chars
        for (int j = 0; j < len; j++) {
            charArray[j] =
                tempCharArray[len - 1 - j];
        }
        
        String reversePalindrome =
            new String(charArray);
        System.out.println(reversePalindrome);
    }
}

運行該程序會產生如下輸出:函數

doT saw I was toD

要完成字符串反轉,程序必須將字符串轉換爲字符數組(第一個for循環),將數組轉換爲第二個數組(第二個for循環),而後再轉換回字符串,String類包含一個方法getChars(),用於將字符串或字符串的一部分轉換爲字符數組,所以咱們能夠在上面的程序中替換第一個for循環:ui

palindrome.getChars(0, len, tempCharArray, 0);

鏈接字符串

String類包括用於鏈接兩個字符串的方法:

string1.concat(string2);

這將返回一個新字符串,該字符串爲string1,並在末尾添加了string2

你還能夠將concat()方法與字符串文字一塊兒使用,以下所示:

"My name is ".concat("Rumplestiltskin");

字符串一般使用+運算符鏈接,如:

"Hello," + " world" + "!"

結果是:

"Hello, world!"

+運算符普遍用於打印語句,例如:

String string1 = "saw I was ";
System.out.println("Dot " + string1 + "Tod");

這將打印:

Dot saw I was Tod

這種鏈接能夠是任何對象的混合,對於不是String的每一個對象,調用其toString()方法將其轉換爲String

注意:Java編程語言不容許文字字符串跨越源文件中的行,所以必須在多行字符串中的每行末尾使用+鏈接運算符,例如:

String quote = 
    "Now is the time for all good " +
    "men to come to the aid of their country.";

使用+鏈接運算符在行之間斷開字符串在print語句中很是常見。

建立格式字符串

你已經看到使用printf()format()方法來打印帶有格式化數字的輸出,String類有一個等效的類方法format(),它返回一個String對象而不是一個PrintStream對象。

使用Stringstatic format()方法能夠建立一個能夠重用的格式化字符串,而不是一次性打印語句,例如替換:

System.out.printf("The value of the float " +
                  "variable is %f, while " +
                  "the value of the " + 
                  "integer variable is %d, " +
                  "and the string is %s", 
                  floatVar, intVar, stringVar);

你能夠這樣寫:

String fs;
fs = String.format("The value of the float " +
                   "variable is %f, while " +
                   "the value of the " + 
                   "integer variable is %d, " +
                   " and the string is %s",
                   floatVar, intVar, stringVar);
System.out.println(fs);

字符串總結

字符串是一系列字符,普遍用於Java編程,在Java編程語言中,字符串是對象,String類有60多個方法和13個構造函數。

最多見的狀況是,建立一個帶有以下語句的字符串:

String s = "Hello world!";

而不是使用其中一個String構造函數。

String類有許多方法能夠查找和檢索子字符串,而後能夠使用+鏈接運算符輕鬆地將它們從新組合成新的字符串。

String類還包括許多實用方法,其中包括split()toLowerCase()toUpperCase()valueOf()。後一種方法在將用戶輸入字符串轉換爲數字時是必不可少的,Number子類還具備將字符串轉換爲數字的方法,反之亦然。

除了String類以外,還有一個StringBuilder類,使用StringBuilder對象有時比使用字符串更有效,StringBuilder類提供了一些對字符串有用的方法,其中包括reverse(),可是,一般,String類具備更普遍的方法。

能夠使用StringBuilder構造函數將字符串轉換爲字符串構建器,能夠使用toString()方法將字符串構建器轉換爲字符串。


上一篇:字符

下一篇:在數字和字符串之間轉換

相關文章
相關標籤/搜索