cjava字元串
1. java字元串
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution {
public static void main(String[] args) {
String str = null;
int x = 0;
String temp = null;
System.out.println("please enter the string:");
try {
BufferedReader br1 = new BufferedReader(new InputStreamReader(
System.in));
str = br1.readLine();
System.out.println("please enter the integer:");
BufferedReader br2 = new BufferedReader(new InputStreamReader(
System.in));
temp = br2.readLine();
x = Integer.parseInt(temp);
char[] c = str.toCharArray();
System.out.println(c[x-1]);
} catch (IOException e) {
e.printStackTrace();
}
}
}
2. java中String是什麼
Java字元串,在開發中用的是比較頻繁的一個類,我們平時要表達一句話的含義,就可以使用字元串(String)來詳細的描述;
Java中已經將字元串進行了很好的封裝,我們可以使用String類將字元串進行隨意的操作,比如字元串的反轉,字元串的分割,字元串的拼接等。
Java String類提供了很多的構造方法,他可以根據我們傳入的不同的參數,轉換成我們想要的數據;比如可以將字元數組,位元組數據,ASCII碼數組轉換為字元串,而且可以根據傳入的參數,判斷將數據的哪些位置的內容轉換為字元串;
在java中除了String之外還有幾個常用的字元串類StringBuffer和StringBuilder,在執行效率方面StringBuilder最快,String最慢,在Java源碼中,String類裡面有個常量private final char value[];用來存儲字元串信息,多以對象一旦創建成功之後,內容就不會改變,但實際上修改值得時候,是不斷的創建回收內容,所以String速率最慢;StringBuffer和StringBuilder都是繼承於AbstractStringBuilder這個類,在這個類中有個變數char[] value;數組進行字元串內容的存儲,變數是可變的,所以不用隨時去分配空間,速度相對於String就會快;對於StringBuffer和StringBuffer兩個類,在源碼中由於StringBuffer中很多方法都被synchronized修飾,所以StringBuffer是線程安全的,也是由於這個原因,StringBuffer速度就相對於StringBuilder慢;
在我們操作比較少量的數據的時候可以使用String,如果數據在多個線程中共享,需要考慮到線程安全,可以使用StringBuffer;
以下為java中String常用的方法示例:
更多java學習方面的問題可以訪問這個網頁,網頁鏈接,希望我的回答能幫到你。
3. java 如何定義字元串變數
一、使用 String 類定義:
在 Java 中每個雙引號定義的字元串都是一個 String 類的對象。因此,可以通過使用 String 類的構造方法來創建字元串,該類位於 java.lang 包中,作用域是 final。
String 類的構造方法有多種重載形式,每種形式都可以定義字元串。下面介紹最常用的幾種形式。
1、 String()
初始化一個新創建的 String 對象,表示一個空字元序列。
2、String(String original)
初始化一個新創建的 String 對象,使其表示一個與參數相同的字元序列。換句話說,新創建的字元串是該參數字元串的副本。
3、String(char[ ]value)
分配一個新的字元串,將參數中的字元數組元素全部變為字元串。該字元數組的內容已被復制,後續對字元數組的修改不會影響新創建的字元串。
4、String(char[] value,int offset,int count)
分配一個新的 String,它包含來自該字元數組參數一個子數組的字元。offset 參數是子數組第一個字元的索引,count 參數指定子數組的長度。該子數組的內容已被賦值,後續對字元數組的修改不會影響新創建的字元串。
4. java中如何將字元型轉換字元串
java中有很多方法可以將字元型轉化為字元串。
這是代碼
package com.test;
public class Test {
public static void main(String[] args)throws Exception{
char a = 'a';
String str1 = a + "";
String str2 = String.valueOf(a);
String str3 = Character.toString(a);
Character b = 'b';
String str4 = b + "";
String str5 = String.valueOf(b);
String str6 = Character.toString(a);
String str7 = b.toString();
}
}
方法4:Characte類的toString方法
如果字元變數是包裝類,還可以用Characte類的toString方法
String str7 = b.toString();
5. java字元串
12.4.4 String 和 StringBuffer 類
這里總結一下同時適用於 String 和 StringBuffer 的方法,以便對它們相互間
的溝通方式有一個印象。這些表格並未把每個單獨的方法都包括進去,而是包含
了與本次討論有重要關系的方法。那些已被覆蓋的方法用單獨一行總結。
首先總結 String 類的各種方法:
方法 自變數,覆蓋 用途
構建器 已被覆蓋:默認,String,StringBuffer,char 數組,byte 數組 創建
String 對象
length() 無 String 中的字元數量
charAt() int Index 位於 String 內某個位置的 char
getChars(),getBytes 開始復制的起點和終點,要向其中復制內容的數組,對
目標數組的一個索引 將 char 或 byte 復制到外部數組內部
toCharArray() 無 產生一個 char[],其中包含了 String 內部的字元
equals(),equalsIgnoreCase() 用於對比的一個 String 對兩個字串的內容進行
等價性檢查
compareTo() 用於對比的一個 String 結果為負、零或正,具體取決於 String
和自變數的字典順序。注意大寫和小寫不是相等的!
regionMatches() 這個 String 以及其他 String 的位置偏移,以及要比較的區域
長度。覆蓋加入了「忽略大小寫」的特性 一個布爾結果,指出要對比的區域是
否相同
startsWith() 可能以它開頭的 String。覆蓋在自變數里加入了偏移 一個布爾
結果,指出 String 是否以那個自變數開頭
endsWith() 可能是這個 String 後綴的一個 String 一個布爾結果,指出自變數
是不是一個後綴
indexOf(),lastIndexOf() 已覆蓋:char,char 和起始索引,String,String 和起
始索引 若自變數未在這個 String 里找到,則返回-1;否則返回自變數開始處的
位置索引。lastIndexOf()可從終點開始回溯搜索
substring() 已覆蓋:起始索引,起始索引和結束索引 返回一個新的 String
對象,其中包含了指定的字元子集
concat() 想連結的 String 返回一個新 String 對象,其中包含了原始 String 的
字元,並在後面加上由自變數提供的字元
relpace() 要查找的老字元,要用它替換的新字元 返回一個新 String 對象,
其中已完成了替換工作。若沒有找到相符的搜索項,就沿用老字串
toLowerCase(),toUpperCase() 無 返回一個新 String 對象,其中所有字元的大
小寫形式都進行了統一。若不必修改,則沿用老字串
trim() 無 返回一個新的 String 對象,頭尾空白均已刪除。若毋需改動,則沿
用老字串
valueOf() 已覆蓋:object,char[],char[]和偏移以及計數,boolean,char,int,
long,float,double 返回一個 String,其中包含自變數的一個字元表現形式
Intern() 無 為每個獨一無二的字元順序都產生一個(而且只有一個)String
句柄
可以看到,一旦有必要改變原來的內容,每個 String 方法都小心地返回了一
個新的 String 對象。另外要注意的一個問題是,若內容不需要改變,則方法只返
回指向原來那個 String 的一個句柄。這樣做可以節省存儲空間和系統開銷。
下面列出有關 StringBuffer(字串緩沖)類的方法:
方法 自變數,覆蓋 用途
構建器 已覆蓋:默認,要創建的緩沖區長度,要根據它創建的 String 新建
一個 StringBuffer 對象
toString() 無 根據這個 StringBuffer 創建一個 String
length() 無 StringBuffer 中的字元數量
capacity() 無 返回目前分配的空間大小
ensureCapacity() 用於表示希望容量的一個整數 使 StringBuffer 容納至少希
望的空間大小
setLength() 用於指示緩沖區內字串新長度的一個整數 縮短或擴充前一個字
符串。如果是擴充,則用 null 值填充空隙
charAt() 表示目標元素所在位置的一個整數 返回位於緩沖區指定位置處的
char
setCharAt() 代表目標元素位置的一個整數以及元素的一個新 char 值 修改指
定位置處的值
getChars() 復制的起點和終點,要在其中復制的數組以及目標數組的一個索
引 將 char 復制到一個外部數組。和 String 不同,這里沒有 getBytes()可供使用
append() 已覆蓋:Object,String,char[],特定偏移和長度的 char[],boolean,
char,int,long,float,double 將自變數轉換成一個字串,並將其追加到當前緩
沖區的末尾。若有必要,同時增大緩沖區的長度
insert() 已覆蓋,第一個自變數代表開始插入的位置:Object,String,char[],
boolean,char,int,long,float,double 第二個自變數轉換成一個字串,並插入
當前緩沖區。插入位置在偏移區域的起點處。若有必要,同時會增大緩沖區的長
度
reverse() 無 反轉緩沖內的字元順序
最常用的一個方法是 append()。在計算包含了+和+=運算符的 String 表達式
時,編譯器便會用到這個方法。insert()方法採用類似的形式。這兩個方法都能對
緩沖區進行重要的操作,不需要另建新對象。
12.4.5 字串的特殊性
現在,大家已知道 String 類並非僅僅是 Java 提供的另一個類。String 里含有
大量特殊的類。通過編譯器和特殊的覆蓋或過載運算符+和+=,可將引號字元串
轉換成一個 String。在本章中,大家已見識了剩下的一種特殊情況:用同志
StringBuffer 精心構造的「不可變」能力,以及編譯器中出現的一些有趣現象。
6. java中怎麼進行字元串替換
使用replace方法
該方法的作用是替換字元串中所有指定的字元,然後生成一個新的字元串,例如:
String s = 「abcat」;
String s1 = s.replace(『a』,『1』);
該代碼的作用是將字元串s中所有的字元a替換成字元1,生成的新字元串s1的值是「1bc1t」,而字元串s的內容不發生改變。如果需要將字元串中某個指定的字元串替換為其它字元串,則可以使用replaceAll方法,例如:
String s = 「abatbac」;
String s1 = s.replaceAll(「ba」,「12」);
該代碼的作用是將字元串s中所有的字元串「ab」替換為「12」,生成新的字元串「a12t12c」,而字元串s的內容也不發生改變。
字元串在存儲上類似字元數組
它每一位單個元素都是能提取的,字元串的零位是它的長度,如s[0]=10,這提供給我們很多方便,例如高精度運算時每一位都能轉化為數字存入數組。
通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字元串相等的充要條件是:
長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。
7. JAVA中怎樣輸入字元串
1.首先,導入java.util.*包。
(7)cjava字元串擴展閱讀:
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程 。
Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。
Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。
8. Java中的字元串的問題
注意f1方法里的參數
都是拷貝一份傳遞。
但第一個參數是對象的引用。可以理解成一個共享網盤的路徑,拷貝多少份都不影響找到這個網盤,然後網盤里就兩個文件num和str,其他人修改num和str文件里的內容保存後,你去查看也能看到修改後的內容
後面的就是值的拷貝,修改不影響你手裡的原件
至於最後的String類型的參數,你拷貝過去如果不修改,和原件是一樣的。
看似你修改成了bcd
實則流程大概是。我要創建一個String類型的對象,值是bcd。然後看常量池裡有沒有bcd,沒有那就new一個新的對象。但是只在f1方法里有效
下圖就可以看出來,傳遞過去的時候hashcode是一致的,重新賦值後就改變了
9. java中字元串的是什麼
java中的字元串是由多個字元組成的一串數據,字元串是常量,一旦被創建就不能改變,這是因為字元串的值是存放在方法區的常量池裡面,但是引用可以改變。字元串字面值"ab"也可以看成是一個字元串對象。
10. java字元串問題
1.怎樣比較字元串?用」==」還是用equals()?
簡單地說,」==」測試兩個字元串的引用是否相同,equals()測試兩個字元串的值是否相同。除非你希望檢查兩個字元串是否是同一個對象,否則最好用equals()。
如果你知道字元串駐留機制會更好。
2.為什麼對於安全性敏感的信息char[]要優於String?
字元串是不變的,這也就意味著字元串一旦被創建,它們將一直保持在那直到被垃圾回收器清理為止。而對於一個數組,你可以明確的修改它的元素。這樣一來,安全性敏感信息(比如密碼)將不會出現在系統的任何其它地方。
3.我們能不能在switch語句中使用String?
對於Java7答案是肯定的。從JDK7開始,我們可以使用String作為switch語句的條件。在JDK6之前,我們不能使用String作為switch語句的條件。