當前位置:首頁 » 編程語言 » java字元串處理

java字元串處理

發布時間: 2024-01-01 18:45:14

① string怎麼去掉字元串裡面的所有空格

string怎麼去掉字元串裡面的所有空格?

字元串,是java中最常用的一個數據類型了。我們在日常開發時候會經常使用字元串做很多的操作。比如字元串的拼接、截斷、替換等。

本文我們介紹一個比較常見又容易被忽略的一個操作,那就是移除字元串中的空格。

其實,在Java中從字元串中刪除空格有很多不同的方法,如trim,replaceAll等。但是,在Java 11添加了一些新的功能,如strip、stripLeading、stripTrailing等。

大多數時候,我們只是使用trim方法來刪除多餘的空格。但是好像很多人並沒有去思考過,是否有更好的方式呢?

當然,trim()在大多數情況下都工作得很好,但是Java中有許多不同的方法。每一種都有自己的優點和缺點。我們如何決定哪種方法最適合我們呢?

接下來我們將介紹幾種方法,並對比下他們的區別和優缺點等。

在java中從字元串中刪除空格的不同方法

首先,我們來看一下,想要從String中移除空格部分,有多少種方法,作者根據經驗,總結了以下7種(JDK原生自帶的方法,不包含第三方工具類庫中的類似方法):

trim() : 刪除字元串開頭和結尾的空格。

strip() : 刪除字元串開頭和結尾的空格。

stripLeading() : 只刪除字元串開頭的空格

stripTrailing() : 只刪除字元串的結尾的空格

replace() : 用新字元替換所有目標字元

replaceAll() : 將所有匹配的字元替換為新字元。此方法將正則表達式作為輸入,以標識需要替換的目標子字元串

replaceFirst() : 僅將目標子字元串的第一次出現的字元替換為新的字元串

需要注意的最重要的一點是,在Java中String對象是不可變的,這意味著我們不能修改字元串,因此以上所有的方法我們得到的都是一個新的字元串。

接下啦,我們分別針對以上這幾個方法學習下用法,了解下其特性。

PS:本文代碼都是使用在線運行工具(https://www.jdoodle.com/online-java-compiler/ )執行的,因為我的測試機並未安裝Java 11,並且Unicode字元也不完整。如果大家也想實驗,建議使用在線工具,選擇對應的JDK即可。

② 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中首次出現的位置的運算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。

③ java中文字元串處理方法

處理方法有分割,合並,等很多方法的

1、String類是final的,不可被繼承。public final class String。

2、String類是的本質是字元數組char[], 並且其值不可改變。private final char value[];

然後打開String類的API文檔,可以發現:

3、String類對象有個特殊的創建的方式,就是直接指定比如String x = "abc","abc"就表示一個字元串對象。而x是"abc"對象的地址,也叫做"abc"對象的引用。

4、String對象可以通過「+」串聯。串聯後會生成新的字元串。也可以通過concat()來串聯,這個後面會講述。

6、Java運行時會維護一個String Pool(String池),JavaDoc翻譯很模糊「字元串緩沖區」。String池用來存放運行時中產生的各種字元串,並且池中的字元串的內容不重復。而一般對象不存在這個緩沖池,並且創建的對象僅僅存在於方法的堆棧區。下面是個系統內存示意圖:

5、創建字元串的方式很多,歸納起來有三類:

其一,使用new關鍵字創建字元串,比如String s1 = new String("abc");

其二,直接指定。比如String s2 = "abc";

其三,使用串聯生成新的字元串。比如String s3 = "ab" + "c";

④ java中string怎麼使用

以下是關於string的七種用法,注意哦,記得要時常去查看java的API文檔,那個裡面也有很詳細的介紹

1>獲取

1.1:字元串中包含的字元數,也就是字元串的長度。
int length():獲取長度

1.2:根據位置獲取位置上某個字元。
char charAt(int index)

1.3:根據字元獲取該字元在字元串中的位置。
int indexOf(int ch):返回的是ch在字元串中第一次出現的位置。
int indexOf(int ch,int fromIndex):從fromIndex指定位置開始,獲取ch在字元串中出現的位置。

int indexOf(String str):返回的是str在字元串中第一次出現的位置。
int indexOf(String str,int fromIndex):從fromIndex指定位置開始,獲取str在字元串中出現的位置。

1.4:int lastIndexOf(String str):反向索引。

2>判斷
2.1:字元串中是否包含某一個子串。
boolean contains(str);
特殊之處:indexOf(str):可以索引str第一次出現為止,如果返回-1,表示該str不在字元串中存在。
所以,也可以用於對指定判斷是否包含。
if(str.indexOf("a")!=1)
而且該方法既可以判斷,也可以獲取出現的位置。
2.2:字元串中是否有內容。
boolean isEmpty():原理就是判斷長度是否為0。

2.3:字元串是否以指定內容開頭。
boolean startsWith(str);

2.4:字元串是否以指定內容結尾。
boolean endsWith(str);

2.5:判斷字元內容是否相同,復寫了object類中的equals方法。
boolean equals(str);

2.6:判斷內容是否相同,並忽略大小寫。
boolean.equalsIgnorecase();
3>轉換

3.1:將字元數組轉成字元串。
構造函數:String(char[])
String(char[],offset,count):將字元數組中的一部分轉成字元串
靜態方法:
static String ValueOf(char[]);
static String ValueOf(char[] data,int offset,int count);
static String valueOf(char[]);

3.2:將字元串轉成字元組
char[] tocharArray();
3.3:將位元組數組轉成字元串。
String(byte[])
String(byte[],offset,count):將位元組數組中的一部分轉成字元串

3.4:將字元串轉成位元組數組。
byte[] getBytes()
3.5:將基本數據類型轉成字元串,
static String valueOf(int)
static String valueOf(double)
// 3+"" 與 String.valueOf(3)的值是一樣的
特殊:字元串和位元組數組在轉換過程中,是可以指定編碼的。
4>替換
String replace(oldchar,newchar);
5>切割
String[] split(regex);
6>子串。獲取字元串中的而一部分
String subString(begin);
String subString(begin,end);
7>轉換,去除空格,比較。

7.1:將字元串轉成大寫或小寫
String toUpperCsae() 大轉小
String toLowerCsae() 小轉大
7.2:將字元串兩端的多個空格去除
String trim();
7.3:對兩個字元串進行自然順序的比較
int compareTo(string);
請看如下代碼,下面的代碼都是針對上面string七種用法而進行一一舉例說明:

復制代碼 代碼如下:

class StringMethodDemo
{
public static void method_Zhuanhuan_Qukong_Bijiao()
{
String s = " hello Java ";

//列印結果是:(hello和java前後門都有空格)hello java
sop(s.toUpperCase());

//列印結果是:(HELLO和JAVA前後門都有空格)HELLO JAVA
sop(s.toLowerCase());
//列印及結果是:不帶空格的「hello java」
sop(s.trim());
//比較數的大寫,列印結果是:1,因為b對應ascii值是98,
//a對應是97,所以b-a=1
String s1 = "abc";
String s2 = "aaa";
sop(s1.compareTo(s2));
}
public static void method_sub()
{
String s = "abcdef";
//列印結果是:cdef,從指定位置開始到結尾。如果角標不存在,會出現字元串角標越界。
sop(s.substring(2));
//列印結果是:cd,包含頭,不包含尾。
sop(s.substring(2,4));
}
public static void method_split()
{
String s = "zhangsan,lisi,wangwu";
String[] arr = s.split(",");
for(int x=0; x<arr.length; x++)
{
sop(arr[x]);
}
}
public static void method_replace()
{
String s = "hello java";
//String s1 = s.replace('a','n');
//String s1 = s.replace('w','n'); 如果要替換的字元不存在,返回的還是原串

String s1 = s.replace("java","world");//列印結果是:hello world
sop("s="+s); //列印結果是:hello java因為字元串一旦被初始化,值就不可被改變
sop("s1="+s1);//列印結果是:hello jnvn
}
public static void method_trans()
{
char[] arr = {'a','b','c','d','e','f'};
String s = new String(arr,1,3);
sop("s="+s);//列印結果是:bcd
String s1 = "zxcvbnm";
char[] chs = s1.toCharArray();
for(int x=0; x<chs.length; x++)
{
sop("ch="+chs[x]);//列印結果是:ch=z,x,c,v,b,n,m
}
}
public static void method_is()
{
String str = "ArrayDemo.java";
//判斷文件名稱是否是Array單詞開頭
sop(str.startsWith("Array"));

//判斷文件名稱是否是.java的文件
sop(str.endsWith(".java"));

//判斷文件中是否包含Demo
sop(str.contains("Demo"));
}

public static void method_get()
{
String str = "abcdeakpf";
//長度
sop(str.length());
//根據索引獲取字元
sop(str.charAt(4));
//sop(str.charAt(40));當訪問到字元串中不存在的角標時會發生(字元串角標越界異常)
//根據字元獲取索引
//sop(str.indexOf('a'));
sop(str.indexOf('a',3));//列印的是5,因為角標3是d,
//所以從d後面開始找a,第5個角標是a
//sop(str.indexOf('t',3))列印:-1,如果沒有找到角標,返回-1

//反向索引一個字元出現的位置(從右往左查找,但是角標還是從左開始)
sop(str.lastIndexOf("a"));
}
public static void main(String[] args)
{
method_Zhuanhuan_Qukong_Bijiao();
//method_sub();
//method_split();
//method_replace();
//method_trans();
//method_is();
//method_get();
/*
String s1 = "abc";
String s2 = new String("abc");
String s3 = "abc";
System.out.println(s1==s2);
System.out.println(s1==s3);
*/
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}

⑤ java怎麼處理帶引號的字元串

java可以處理帶有雙引號的字元串


使用轉義字元

ublicclassTest{

publicstaticvoidmain(String[]args){

Stringstr1=""name"";//字元串兩邊含有雙引號

Stringstr2="name"is"wgb";//字元串中間含有雙引號

Stringstr3="\name";//使用轉義字元還可以使字元串包含其他字元

System.out.println("字元串一:"+str1);

System.out.println("字元串二:"+str2);

System.out.println("字元串三:"+str3);

}

結果:

⑥ java中字元串過長怎麼處理

兩個字元串常量用+連接,在編譯時會被編譯器優化成一個拼接後的常量,所以在常量池中應該只有一個你要的那個常量

熱點內容
linux查看ftp日誌 發布:2024-11-30 06:33:19 瀏覽:474
設置截屏存儲 發布:2024-11-30 06:29:00 瀏覽:393
jpg演算法 發布:2024-11-30 06:28:55 瀏覽:194
怎麼刪除u盤中的文件夾 發布:2024-11-30 06:28:20 瀏覽:215
iphone文件夾打開 發布:2024-11-30 06:13:43 瀏覽:297
如何配置Javaweb環境 發布:2024-11-30 06:09:24 瀏覽:120
怎麼使用Androidapi 發布:2024-11-30 06:08:43 瀏覽:60
包鋼伺服器地址 發布:2024-11-30 06:06:27 瀏覽:562
繁體壓縮 發布:2024-11-30 06:06:22 瀏覽:38
osql執行sql 發布:2024-11-30 06:01:37 瀏覽:12