字符串
在Java編程中廣泛使用的字符串是一系列字符,在Java編程語(yǔ)言中,字符串是對(duì)象。
Java平臺(tái)提供String類(lèi)來(lái)創(chuàng)建和操作字符串。
創(chuàng)建字符串創(chuàng)建字符串的最直接方法是編寫(xiě):
String greeting = "Hello world!";
在這種情況下,"Hello world!"是一個(gè)字符串文字 — 代碼中的一系列字符,用雙引號(hào)括起來(lái),每當(dāng)它在代碼中遇到字符串文字時(shí),編譯器就會(huì)創(chuàng)建一個(gè)帶有其值的String對(duì)象 — 在本例中為Hello world!。
與任何其他對(duì)象一樣,你可以使用new關(guān)鍵字和構(gòu)造函數(shù)創(chuàng)建String對(duì)象,String類(lèi)有13個(gè)構(gòu)造函數(shù),允許你使用不同的源提供字符串的初始值,例如字符數(shù)組:
char[] helloArray = { "h", "e", "l", "l", "o", "." }; String helloString = new String(helloArray); System.out.println(helloString);
此代碼段的最后一行顯示hello.。
注意:String類(lèi)是不可變的,因此一旦創(chuàng)建,就無(wú)法更改String對(duì)象,String類(lèi)有許多方法,其中一些將在下面討論,似乎可以修改字符串,由于字符串是不可變的,因此這些方法真正做的是創(chuàng)建并返回包含操作結(jié)果的新字符串。字符串長(zhǎng)度
用于獲取對(duì)象信息的方法稱(chēng)為訪(fǎng)問(wèn)器方法,可以與字符串一起使用的一種訪(fǎng)問(wèn)器方法是length()方法,它返回字符串對(duì)象中包含的字符數(shù),在執(zhí)行以下兩行代碼后,len等于17:
String palindrome = "Dot saw I was Tod"; int len = palindrome.length();
palindrome是一個(gè)對(duì)稱(chēng)的單詞或句子 — 它向前和向后拼寫(xiě)相同,忽略大小寫(xiě)和標(biāo)點(diǎn)符號(hào),這是一個(gè)簡(jiǎn)短而低效的程序來(lái)反轉(zhuǎn)palindrome字符串,它調(diào)用String方法charAt(i),它返回字符串中的第i個(gè)字符,從0開(kāi)始計(jì)數(shù)。
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); } }
運(yùn)行該程序會(huì)產(chǎn)生以下輸出:
doT saw I was toD
要完成字符串反轉(zhuǎn),程序必須將字符串轉(zhuǎn)換為字符數(shù)組(第一個(gè)for循環(huán)),將數(shù)組轉(zhuǎn)換為第二個(gè)數(shù)組(第二個(gè)for循環(huán)),然后再轉(zhuǎn)換回字符串,String類(lèi)包含一個(gè)方法getChars(),用于將字符串或字符串的一部分轉(zhuǎn)換為字符數(shù)組,因此我們可以在上面的程序中替換第一個(gè)for循環(huán):
palindrome.getChars(0, len, tempCharArray, 0);連接字符串
String類(lèi)包括用于連接兩個(gè)字符串的方法:
string1.concat(string2);
這將返回一個(gè)新字符串,該字符串為string1,并在末尾添加了string2。
你還可以將concat()方法與字符串文字一起使用,如下所示:
"My name is ".concat("Rumplestiltskin");
字符串通常使用+運(yùn)算符連接,如:
"Hello," + " world" + "!"
結(jié)果是:
"Hello, world!"
+運(yùn)算符廣泛用于打印語(yǔ)句,例如:
String string1 = "saw I was "; System.out.println("Dot " + string1 + "Tod");
這將打印:
Dot saw I was Tod
這種連接可以是任何對(duì)象的混合,對(duì)于不是String的每個(gè)對(duì)象,調(diào)用其toString()方法將其轉(zhuǎn)換為String。
注意:Java編程語(yǔ)言不允許文字字符串跨越源文件中的行,因此必須在多行字符串中的每行末尾使用+連接運(yùn)算符,例如:
String quote = "Now is the time for all good " + "men to come to the aid of their country.";
使用+連接運(yùn)算符在行之間斷開(kāi)字符串在print語(yǔ)句中非常常見(jiàn)。
創(chuàng)建格式字符串你已經(jīng)看到使用printf()和format()方法來(lái)打印帶有格式化數(shù)字的輸出,String類(lèi)有一個(gè)等效的類(lèi)方法format(),它返回一個(gè)String對(duì)象而不是一個(gè)PrintStream對(duì)象。
使用String的static format()方法可以創(chuàng)建一個(gè)可以重用的格式化字符串,而不是一次性打印語(yǔ)句,例如替換:
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);
你可以這樣寫(xiě):
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);字符串總結(jié)
字符串是一系列字符,廣泛用于Java編程,在Java編程語(yǔ)言中,字符串是對(duì)象,String類(lèi)有60多個(gè)方法和13個(gè)構(gòu)造函數(shù)。
最常見(jiàn)的情況是,創(chuàng)建一個(gè)帶有如下語(yǔ)句的字符串:
String s = "Hello world!";
而不是使用其中一個(gè)String構(gòu)造函數(shù)。
String類(lèi)有許多方法可以查找和檢索子字符串,然后可以使用+連接運(yùn)算符輕松地將它們重新組合成新的字符串。
String類(lèi)還包括許多實(shí)用方法,其中包括split()、toLowerCase()、toUpperCase()和valueOf()。后一種方法在將用戶(hù)輸入字符串轉(zhuǎn)換為數(shù)字時(shí)是必不可少的,Number子類(lèi)還具有將字符串轉(zhuǎn)換為數(shù)字的方法,反之亦然。
除了String類(lèi)之外,還有一個(gè)StringBuilder類(lèi),使用StringBuilder對(duì)象有時(shí)比使用字符串更有效,StringBuilder類(lèi)提供了一些對(duì)字符串有用的方法,其中包括reverse(),但是,通常,String類(lèi)具有更廣泛的方法。
可以使用StringBuilder構(gòu)造函數(shù)將字符串轉(zhuǎn)換為字符串構(gòu)建器,可以使用toString()方法將字符串構(gòu)建器轉(zhuǎn)換為字符串。
上一篇:字符 下一篇:在數(shù)字和字符串之間轉(zhuǎn)換文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/72886.html
Java? 教程 Java教程是為JDK 8編寫(xiě)的,本頁(yè)面中描述的示例和實(shí)踐沒(méi)有利用在后續(xù)版本中引入的改進(jìn)。 Java教程是希望使用Java編程語(yǔ)言創(chuàng)建應(yīng)用程序的程序員的實(shí)用指南,其中包括數(shù)百個(gè)完整的工作示例和數(shù)十個(gè)課程,相關(guān)課程組被組織成教程。 覆蓋基礎(chǔ)知識(shí)的路徑 這些教程以書(shū)籍的形式提供,如Java教程,第六版,前往Amazon.com購(gòu)買(mǎi)。 入門(mén) 介紹Java技術(shù)和安裝Java開(kāi)發(fā)軟件并使用...
掃描 編程I/O通常涉及轉(zhuǎn)換人們喜歡使用的整齊格式的數(shù)據(jù),為了幫助你完成這些工作,Java平臺(tái)提供了兩個(gè)API,掃描器API將輸入分解為與數(shù)據(jù)位相關(guān)聯(lián)的單個(gè)標(biāo)記,格式化API將數(shù)據(jù)組裝成格式良好、可讀的形式。 Scanner類(lèi)型的對(duì)象對(duì)于將格式化輸入分解為標(biāo)記并根據(jù)其數(shù)據(jù)類(lèi)型轉(zhuǎn)換單個(gè)標(biāo)記非常有用。 將輸入分解為標(biāo)記 默認(rèn)情況下,掃描器使用空格分隔標(biāo)記(空格字符包括空格、制表符和行終止符,有關(guān)完整列...
摘要:未來(lái)的主要發(fā)布基于。在中調(diào)用函數(shù)支持從代碼中直接調(diào)用定義在腳本文件中的函數(shù)。下面的函數(shù)稍后會(huì)在端調(diào)用為了調(diào)用函數(shù),你首先需要將腳本引擎轉(zhuǎn)換為。調(diào)用函數(shù)將結(jié)果輸出到,所以我們會(huì)首先看到輸出。幸運(yùn)的是,有一套補(bǔ)救措施。 原文:Java 8 Nashorn Tutorial 譯者:飛龍 協(xié)議:CC BY-NC-SA 4.0 這個(gè)教程中,你會(huì)通過(guò)簡(jiǎn)單易懂的代碼示例,來(lái)了解Nashorn Ja...
以下是Java技術(shù)棧微信公眾號(hào)發(fā)布的關(guān)于 Java 的技術(shù)干貨,從以下幾個(gè)方面匯總。 Java 基礎(chǔ)篇 Java 集合篇 Java 多線(xiàn)程篇 Java JVM篇 Java 進(jìn)階篇 Java 新特性篇 Java 工具篇 Java 書(shū)籍篇 Java基礎(chǔ)篇 8張圖帶你輕松溫習(xí) Java 知識(shí) Java父類(lèi)強(qiáng)制轉(zhuǎn)換子類(lèi)原則 一張圖搞清楚 Java 異常機(jī)制 通用唯一標(biāo)識(shí)碼UUID的介紹及使用 字符串...
字符流 Java平臺(tái)使用Unicode約定存儲(chǔ)字符值,字符流I/O自動(dòng)將此內(nèi)部格式與本地字符集進(jìn)行轉(zhuǎn)換,在Western語(yǔ)言環(huán)境中,本地字符集通常是ASCII的8位超集。 對(duì)于大多數(shù)應(yīng)用程序,具有字符流的I/O并不比具有字節(jié)流的I/O復(fù)雜,使用流類(lèi)完成的輸入和輸出會(huì)自動(dòng)轉(zhuǎn)換為本地字符集和從本地字符集轉(zhuǎn)換,使用字符流代替字節(jié)流的程序會(huì)自動(dòng)適應(yīng)本地字符集并為國(guó)際化做了準(zhǔn)備 — 所有這些都無(wú)需程序員的額...
字符 大多數(shù)情況下,如果使用單個(gè)字符值,則將使用原始char類(lèi)型,例如: char ch = a; // Unicode for uppercase Greek omega character char uniChar = u03A9; // an array of chars char[] charArray = { a, b, c, d, e }; 但是,有時(shí)候需要使用字符作為對(duì)象 — 例如...
閱讀 2692·2023-04-25 19:13
閱讀 4010·2021-09-22 15:34
閱讀 3053·2019-08-30 14:23
閱讀 1462·2019-08-29 17:17
閱讀 1603·2019-08-29 16:05
閱讀 1538·2019-08-29 13:26
閱讀 1218·2019-08-29 13:19
閱讀 553·2019-08-29 13:16