日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java基础:String类

發布時間:2025/4/16 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java基础:String类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

相關閱讀

  • Java基礎:String類
  • Java字符串格式化
  • Java基礎:正則表達式
  • 1. 概述

    字符串是由多個字符組成的一串數據(字符序列),字符串可以看成是字符數組。

    在實際開發中,字符串的操作是最常見的操作,沒有之一。而Java沒有內置的字符串類型,所以,就在Java類庫中提供了一個類String 供我們來使用。String 類代表字符串。

    2. String類的特點

    • 字符串是常量,它的值在創建之后不能更改
    • Java 程序中的所有字符串字面值(如 “abc” )都作為此類的實例實現。
    • 字符串如果是變量相加,先開空間,在拼接。
    • 字符串如果是常量相加,是先加,然后在常量池找,如果有就直接返回,否則,就創建。
    package cn.itcast_02; /* * 字符串的特點:一旦被賦值,就不能改變。 */ public class StringDemo { public static void main(String[] args) { String s = "hello"; s += "world"; System.out.println("s:" + s); // helloworld } }

    字符串在內存中1

    字符串在內存中2

    3. 常見操作方法

    3.1 構造方法

    方法說明
    String()創建一個內容為空的字符串
    String(byte[])根據指定的字節數組創建對象
    String(byte[],int,int)根據字節數組的一部分創建對象
    String(char[])根據指定的字符數組創建對象
    String(char[],int,int)根據字符數組的一部分創建對象
    String(String)根據指定的字符串內容創建對象


    package cn.itcast_01; /* * 字符串:就是由多個字符組成的一串數據。也可以看成是一個字符數組。 * 通過查看API,我們可以知道 * A:字符串字面值"abc"也可以看成是一個字符串對象。 * B:字符串是常量,一旦被賦值,就不能被改變。 * * 構造方法: * public String():空構造 * public String(byte[] bytes):把字節數組轉成字符串 * public String(byte[] bytes,int index,int length):把字節數組的一部分轉成字符串 * public String(char[] value):把字符數組轉成字符串 * public String(char[] value,int index,int count):把字符數組的一部分轉成字符串 * public String(String original):把字符串常量值轉成字符串 * * 字符串的方法: * public int length():返回此字符串的長度。 */ public class StringDemo { public static void main(String[] args) { // public String():空構造 String s1 = new String(); System.out.println("s1:" + s1); System.out.println("s1.length():" + s1.length()); System.out.println("--------------------------"); // public String(byte[] bytes):把字節數組轉成字符串 byte[] bys = { 97, 98, 99, 100, 101 }; String s2 = new String(bys); System.out.println("s2:" + s2); System.out.println("s2.length():" + s2.length()); System.out.println("--------------------------"); // public String(byte[] bytes,int index,int length):把字節數組的一部分轉成字符串 // 我想得到字符串"bcd" String s3 = new String(bys, 1, 3); System.out.println("s3:" + s3); System.out.println("s3.length():" + s3.length()); System.out.println("--------------------------"); // public String(char[] value):把字符數組轉成字符串 char[] chs = { 'a', 'b', 'c', 'd', 'e', '愛', '林', '親' }; String s4 = new String(chs); System.out.println("s4:" + s4); System.out.println("s4.length():" + s4.length()); System.out.println("--------------------------"); // public String(char[] value,int index,int count):把字符數組的一部分轉成字符串 String s5 = new String(chs, 2, 4); System.out.println("s5:" + s5); System.out.println("s5.length():" + s5.length()); System.out.println("--------------------------"); //public String(String original):把字符串常量值轉成字符串 String s6 = new String("abcde"); System.out.println("s6:" + s6); System.out.println("s6.length():" + s6.length()); System.out.println("--------------------------"); //字符串字面值"abc"也可以看成是一個字符串對象。 String s7 = "abcde"; System.out.println("s7:"+s7); System.out.println("s7.length():"+s7.length()); } }

    運行結果:

    3.2 判斷功能

    方法說明
    equals()比較字符串的內容是否相等,區分大小寫
    equalsIgnoreCase()比較字符串的內容是否相等,忽略大小寫
    contains(String str)判斷大字符串中是否包含小字符串
    startsWith()判斷字符串是否以某個字符串開頭
    endsWith()判斷字符串是否以某個字符串結尾
    isEmpty()判斷字符串是否為空


    package cn.itcast_03; /* * String類的判斷功能: * boolean equals(Object obj):比較字符串的內容是否相同,區分大小寫 * boolean equalsIgnoreCase(String str):比較字符串的內容是否相同,忽略大小寫 * boolean contains(String str):判斷大字符串中是否包含小字符串 * boolean startsWith(String str):判斷字符串是否以某個指定的字符串開頭 * boolean endsWith(String str):判斷字符串是否以某個指定的字符串結尾 * boolean isEmpty():判斷字符串是否為空。 * * 注意: * 字符串內容為空和字符串對象為空。 * String s = ""; * String s = null; */ public class StringDemo { public static void main(String[] args) { // 創建字符串對象 String s1 = "helloworld"; String s2 = "helloworld"; String s3 = "HelloWorld"; // boolean equals(Object obj):比較字符串的內容是否相同,區分大小寫 System.out.println("equals:" + s1.equals(s2)); System.out.println("equals:" + s1.equals(s3)); System.out.println("-----------------------"); // boolean equalsIgnoreCase(String str):比較字符串的內容是否相同,忽略大小寫 System.out.println("equals:" + s1.equalsIgnoreCase(s2)); System.out.println("equals:" + s1.equalsIgnoreCase(s3)); System.out.println("-----------------------"); // boolean contains(String str):判斷大字符串中是否包含小字符串 System.out.println("contains:" + s1.contains("hello")); System.out.println("contains:" + s1.contains("hw")); System.out.println("-----------------------"); // boolean startsWith(String str):判斷字符串是否以某個指定的字符串開頭 System.out.println("startsWith:" + s1.startsWith("h")); System.out.println("startsWith:" + s1.startsWith("hello")); System.out.println("startsWith:" + s1.startsWith("world")); System.out.println("-----------------------"); // 練習:boolean endsWith(String str):判斷字符串是否以某個指定的字符串結尾這個自己玩 // boolean isEmpty():判斷字符串是否為空。 System.out.println("isEmpty:" + s1.isEmpty()); String s4 = ""; String s5 = null; System.out.println("isEmpty:" + s4.isEmpty()); // NullPointerException // s5對象都不存在,所以不能調用方法,空指針異常 System.out.println("isEmpty:" + s5.isEmpty()); } }

    運行結果:

    3.3 獲取功能

    方法說明
    length()獲取字符串長度
    charAt(int index)獲取指定位置的字符
    indexOf(int ch)字符第一次出現的索引
    indexOf(String str)字符串第一次出現的索引
    indexOf(int ch,int fromIndex)字符從指定位置后第一次出現的索引
    indexOf(String str,int from)字符串從指定位置后第一次出現的索引
    lastIndexOf()字符串最后一次出現的索引
    subString(int start)從指定位置開始截取字符串
    subString(int start,int end)截取字符串,包左不包右


    package cn.itcast_04; /* * String類的獲取功能 * int length():獲取字符串的長度。 * char charAt(int index):獲取指定索引位置的字符 * int indexOf(int ch):返回指定字符在此字符串中第一次出現處的索引。 * 為什么這里是int類型,而不是char類型? * 原因是:'a'和97其實都可以代表'a' * int indexOf(String str):返回指定字符串在此字符串中第一次出現處的索引。 * int indexOf(int ch,int fromIndex):返回指定字符在此字符串中從指定位置后第一次出現處的索引。 * int indexOf(String str,int fromIndex):返回指定字符串在此字符串中從指定位置后第一次出現處的索引。 * String substring(int start):從指定位置開始截取字符串,默認到末尾。 * String substring(int start,int end):從指定位置開始到指定位置結束截取字符串。 */ public class StringDemo { public static void main(String[] args) { // 定義一個字符串對象 String s = "helloworld"; // int length():獲取字符串的長度。 System.out.println("s.length:" + s.length()); System.out.println("----------------------"); // char charAt(int index):獲取指定索引位置的字符 System.out.println("charAt:" + s.charAt(7)); System.out.println("----------------------"); // int indexOf(int ch):返回指定字符在此字符串中第一次出現處的索引。 System.out.println("indexOf:" + s.indexOf('l')); System.out.println("----------------------"); // int indexOf(String str):返回指定字符串在此字符串中第一次出現處的索引。 System.out.println("indexOf:" + s.indexOf("owo")); System.out.println("----------------------"); // int indexOf(int ch,int fromIndex):返回指定字符在此字符串中從指定位置后第一次出現處的索引。 System.out.println("indexOf:" + s.indexOf('l', 4)); System.out.println("indexOf:" + s.indexOf('k', 4)); // -1 System.out.println("indexOf:" + s.indexOf('l', 40)); // -1 System.out.println("----------------------"); // 自己練習:int indexOf(String str,int // fromIndex):返回指定字符串在此字符串中從指定位置后第一次出現處的索引。 // String substring(int start):從指定位置開始截取字符串,默認到末尾。包含start這個索引 System.out.println("substring:" + s.substring(5)); System.out.println("substring:" + s.substring(0)); System.out.println("----------------------"); // String substring(int start,int // end):從指定位置開始到指定位置結束截取字符串。包括start索引但是不包end索引 System.out.println("substring:" + s.substring(3, 8)); System.out.println("substring:" + s.substring(0, s.length())); } }

    運行結果:

    3.4 轉換功能

    方法說明
    getBytes()把字符串轉成字節數組
    getCharArray()把字符串轉成字符數組
    valueOf(char[] chs)把字符數組轉成字符串
    valueOf(int i)把int類型的數據轉成字符串
    toLowerCase()把字符串轉成小寫
    toUpperCase()把字符串轉成大寫
    concat(String str)字符串拼接


    package cn.itcast_05; /* * String的轉換功能: * byte[] getBytes():把字符串轉換為字節數組。 * char[] toCharArray():把字符串轉換為字符數組。 * static String valueOf(char[] chs):把字符數組轉成字符串。 * static String valueOf(int i):把int類型的數據轉成字符串。 * 注意:String類的valueOf方法可以把任意類型的數據轉成字符串。 * String toLowerCase():把字符串轉成小寫。 * String toUpperCase():把字符串轉成大寫。 * String concat(String str):把字符串拼接。 */ public class StringDemo { public static void main(String[] args) { // 定義一個字符串對象 String s = "JavaSE"; // byte[] getBytes():把字符串轉換為字節數組。 byte[] bys = s.getBytes(); for (int x = 0; x < bys.length; x++) { System.out.println(bys[x]); } System.out.println("----------------"); // char[] toCharArray():把字符串轉換為字符數組。 char[] chs = s.toCharArray(); for (int x = 0; x < chs.length; x++) { System.out.println(chs[x]); } System.out.println("----------------"); // static String valueOf(char[] chs):把字符數組轉成字符串。 String ss = String.valueOf(chs); System.out.println(ss); System.out.println("----------------"); // static String valueOf(int i):把int類型的數據轉成字符串。 int i = 100; String sss = String.valueOf(i); System.out.println(sss); System.out.println("----------------"); // String toLowerCase():把字符串轉成小寫。 System.out.println("toLowerCase:" + s.toLowerCase()); System.out.println("s:" + s); // System.out.println("----------------"); // String toUpperCase():把字符串轉成大寫。 System.out.println("toUpperCase:" + s.toUpperCase()); System.out.println("----------------"); // String concat(String str):把字符串拼接。 String s1 = "hello"; String s2 = "world"; String s3 = s1 + s2; String s4 = s1.concat(s2); System.out.println("s3:"+s3); System.out.println("s4:"+s4); } }

    運行結果:

    3.5 其他功能

    方法說明
    replace(char old,char new)替換字符
    replace(String old,String new)替換字符串
    trim()去掉字符串兩端空格
    compareTo()按字典順序比較字符串
    compareToIngnoreCase()按字典順序比較字符串,忽略大小寫
    format()格式化字符串


    String.format(Locale.CHINA,"第%03d條數據%s"10"str")

    更多關于字符串格式化的內容,請看 Java字符串格式化String.format()的使用

    package cn.itcast_06; /* * String類的其他功能: * * 替換功能: * String replace(char old,char new) * String replace(String old,String new) * * 去除字符串兩空格 * String trim() * * 按字典順序比較兩個字符串 * int compareTo(String str) * int compareToIgnoreCase(String str) */ public class StringDemo { public static void main(String[] args) { // 替換功能 String s1 = "helloworld"; String s2 = s1.replace('l', 'k'); String s3 = s1.replace("owo", "ak47"); System.out.println("s1:" + s1); System.out.println("s2:" + s2); System.out.println("s3:" + s3); System.out.println("---------------"); // 去除字符串兩空格 String s4 = " hello world "; String s5 = s4.trim(); System.out.println("s4:" + s4 + "---"); System.out.println("s5:" + s5 + "---"); // 按字典順序比較兩個字符串 String s6 = "hello"; String s7 = "hello"; String s8 = "abc"; String s9 = "xyz"; System.out.println(s6.compareTo(s7));// 0 System.out.println(s6.compareTo(s8));// 7 System.out.println(s6.compareTo(s9));// -16 } }

    運行結果:

    4. String類練習

    4.1 把數組中的數據按照指定個格式拼接成一個字符串

    package cn.itcast_07; /* * 需求:把數組中的數據按照指定個格式拼接成一個字符串 * 舉例: * int[] arr = {1,2,3}; * 輸出結果: * "[1, 2, 3]" * 分析: * A:定義一個字符串對象,只不過內容為空 * B:先把字符串拼接一個"[" * C:遍歷int數組,得到每一個元素 * D:先判斷該元素是否為最后一個 * 是:就直接拼接元素和"]" * 不是:就拼接元素和逗號以及空格 * E:輸出拼接后的字符串 * * 把代碼用功能實現。 */ public class StringTest2 { public static void main(String[] args) { // 前提是數組已經存在 int[] arr = { 1, 2, 3 }; // 寫一個功能,實現結果 String result = arrayToString(arr); System.out.println("最終結果是:" + result); } /* * 兩個明確: 返回值類型:String 參數列表:int[] arr */ public static String arrayToString(int[] arr) { // 定義一個字符串 String s = ""; // 先把字符串拼接一個"[" s += "["; // 遍歷int數組,得到每一個元素 for (int x = 0; x < arr.length; x++) { // 先判斷該元素是否為最后一個 if (x == arr.length - 1) { // 就直接拼接元素和"]" s += arr[x]; s += "]"; } else { // 就拼接元素和逗號以及空格 s += arr[x]; s += ", "; } } return s; } }

    4.2 字符串反轉

    package cn.itcast_07; import java.util.Scanner; /* * 字符串反轉 * 舉例:鍵盤錄入”abc” * 輸出結果:”cba” * * 分析: * A:鍵盤錄入一個字符串 * B:定義一個新字符串 * C:倒著遍歷字符串,得到每一個字符 * a:length()和charAt()結合 * b:把字符串轉成字符數組 * D:用新字符串把每一個字符拼接起來 * E:輸出新串 */ public class StringTest3 { public static void main(String[] args) { // 鍵盤錄入一個字符串 Scanner sc = new Scanner(System.in); System.out.println("請輸入一個字符串:"); String line = sc.nextLine(); /* // 定義一個新字符串 String result = ""; // 把字符串轉成字符數組 char[] chs = line.toCharArray(); // 倒著遍歷字符串,得到每一個字符 for (int x = chs.length - 1; x >= 0; x--) { // 用新字符串把每一個字符拼接起來 result += chs[x]; } // 輸出新串 System.out.println("反轉后的結果是:" + result); */ // 改進為功能實現 String s = myReverse(line); System.out.println("實現功能后的結果是:" + s); } /* * 兩個明確: 返回值類型:String 參數列表:String */ public static String myReverse(String s) { // 定義一個新字符串 String result = ""; // 把字符串轉成字符數組 char[] chs = s.toCharArray(); // 倒著遍歷字符串,得到每一個字符 for (int x = chs.length - 1; x >= 0; x--) { // 用新字符串把每一個字符拼接起來 result += chs[x]; } return result; } }

    4.3 統計大串中小串出現的次數

    package cn.itcast_07; /* * 統計大串中小串出現的次數 * 舉例: * 在字符串"woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun" * 結果: * java出現了5次 * * 分析: * 前提:是已經知道了大串和小串。 * * A:定義一個統計變量,初始化值是0 * B:先在大串中查找一次小串第一次出現的位置 * a:索引是-1,說明不存在了,就返回統計變量 * b:索引不是-1,說明存在,統計變量++ * C:把剛才的索引+小串的長度作為開始位置截取上一次的大串,返回一個新的字符串,并把該字符串的值重新賦值給大串 * D:回到B */ public class StringTest5 { public static void main(String[] args) { // 定義大串 String maxString = "woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun"; // 定義小串 String minString = "java"; // 寫功能實現 int count = getCount(maxString, minString); System.out.println("Java在大串中出現了:" + count + "次"); } /* * 兩個明確: 返回值類型:int 參數列表:兩個字符串 */ public static int getCount(String maxString, String minString) { // 定義一個統計變量,初始化值是0 int count = 0; /* // 先在大串中查找一次小串第一次出現的位置 int index = maxString.indexOf(minString); // 索引不是-1,說明存在,統計變量++ while (index != -1) { count++; // 把剛才的索引+小串的長度作為開始位置截取上一次的大串,返回一個新的字符串,并把該字符串的值重新賦值給大串 // int startIndex = index + minString.length(); // maxString = maxString.substring(startIndex); maxString = maxString.substring(index + minString.length()); // 繼續查 index = maxString.indexOf(minString); } */ int index; //先查,賦值,判斷 while((index=maxString.indexOf(minString))!=-1){ count++; maxString = maxString.substring(index + minString.length()); } return count; } }

    5. StringBuffer

    我們如果對字符串進行拼接操作,每次拼接,都會構建一個新的String對象,既耗時,又浪費空間。而StringBuffer就可以解決這個問題

    • StringBuffer是線程安全的可變字符序列。
    • StringBuffer和String的區別?

    前者長度和內容可變,后者不可變。如果使用前者做字符串的拼接,不會浪費太多的資源。

    6. 常見操作方法

    6.1 構造方法和獲取方法

    package cn.itcast_01; /* * StringBuffer: * 線程安全的可變字符串。 * * StringBuffer和String的區別? * 前者長度和內容可變,后者不可變。 * 如果使用前者做字符串的拼接,不會浪費太多的資源。 * * StringBuffer的構造方法: * public StringBuffer():無參構造方法 * public StringBuffer(int capacity):指定容量的字符串緩沖區對象 * public StringBuffer(String str):指定字符串內容的字符串緩沖區對象 * * StringBuffer的獲取方法: * public int capacity():返回當前容量。 理論值 * public int length():返回長度(字符數)。 實際值 */ public class StringBufferDemo { public static void main(String[] args) { // public StringBuffer():無參構造方法 StringBuffer sb = new StringBuffer(); System.out.println("sb:" + sb); System.out.println("sb.capacity():" + sb.capacity()); System.out.println("sb.length():" + sb.length()); System.out.println("--------------------------"); // public StringBuffer(int capacity):指定容量的字符串緩沖區對象 StringBuffer sb2 = new StringBuffer(50); System.out.println("sb2:" + sb2); System.out.println("sb2.capacity():" + sb2.capacity()); System.out.println("sb2.length():" + sb2.length()); System.out.println("--------------------------"); // public StringBuffer(String str):指定字符串內容的字符串緩沖區對象 StringBuffer sb3 = new StringBuffer("hello"); System.out.println("sb3:" + sb3); System.out.println("sb3.capacity():" + sb3.capacity()); System.out.println("sb3.length():" + sb3.length()); } }

    6.2 添加功能

    package cn.itcast_02; /* * StringBuffer的添加功能: * public StringBuffer append(String str):可以把任意類型數據添加到字符串緩沖區里面,并返回字符串緩沖區本身 * * public StringBuffer insert(int offset,String str):在指定位置把任意類型的數據插入到字符串緩沖區里面,并返回字符串緩沖區本身 */ public class StringBufferDemo { public static void main(String[] args) { // 創建字符串緩沖區對象 StringBuffer sb = new StringBuffer(); // public StringBuffer append(String str) // StringBuffer sb2 = sb.append("hello"); // System.out.println("sb:" + sb); // System.out.println("sb2:" + sb2); // System.out.println(sb == sb2); // true // 一步一步的添加數據 // sb.append("hello"); // sb.append(true); // sb.append(12); // sb.append(34.56); // 鏈式編程 sb.append("hello").append(true).append(12).append(34.56); System.out.println("sb:" + sb); // public StringBuffer insert(int offset,String // str):在指定位置把任意類型的數據插入到字符串緩沖區里面,并返回字符串緩沖區本身 sb.insert(5, "world"); System.out.println("sb:" + sb); } }

    運行結果:

    6.3 刪除功能

    package cn.itcast_03; /* * StringBuffer的刪除功能 * public StringBuffer deleteCharAt(int index):刪除指定位置的字符,并返回本身 * public StringBuffer delete(int start,int end):刪除從指定位置開始指定位置結束的內容,并返回本身 */ public class StringBufferDemo { public static void main(String[] args) { // 創建對象 StringBuffer sb = new StringBuffer(); // 添加功能 sb.append("hello").append("world").append("java"); System.out.println("sb:" + sb); // public StringBuffer deleteCharAt(int index):刪除指定位置的字符,并返回本身 // 需求:我要刪除e這個字符,腫么辦? // sb.deleteCharAt(1); // 需求:我要刪除第一個l這個字符,腫么辦? // sb.deleteCharAt(1); // public StringBuffer delete(int start,int // end):刪除從指定位置開始指定位置結束的內容,并返回本身 // 需求:我要刪除world這個字符串,腫么辦? // sb.delete(5, 10); // 需求:我要刪除所有的數據 sb.delete(0, sb.length()); System.out.println("sb:" + sb); } }

    運行結果:

    6.4 替換功能

    package cn.itcast_04; /* * StringBuffer的替換功能: * public StringBuffer replace(int start,int end,String str):從start開始到end用str替換 */ public class StringBufferDemo { public static void main(String[] args) { // 創建字符串緩沖區對象 StringBuffer sb = new StringBuffer(); // 添加數據 sb.append("hello"); sb.append("world"); sb.append("java"); System.out.println("sb:" + sb); // public StringBuffer replace(int start,int end,String // str):從start開始到end用str替換 // 需求:我要把world這個數據替換為"節日快樂" sb.replace(5, 10, "節日快樂"); System.out.println("sb:" + sb); } }

    運行結果:

    6.5 反轉功能

    package cn.itcast_05; /* * StringBuffer的反轉功能: * public StringBuffer reverse() */ public class StringBufferDemo { public static void main(String[] args) { // 創建字符串緩沖區對象 StringBuffer sb = new StringBuffer(); // 添加數據 sb.append("霞青林愛我"); System.out.println("sb:" + sb); // public StringBuffer reverse() sb.reverse(); System.out.println("sb:" + sb); } }

    運行結果:

    6.6 截取功能

    package cn.itcast_06; /* * StringBuffer的截取功能:注意返回值類型不再是StringBuffer本身了 * public String substring(int start) * public String substring(int start,int end) */ public class StringBufferDemo { public static void main(String[] args) { // 創建字符串緩沖區對象 StringBuffer sb = new StringBuffer(); // 添加元素 sb.append("hello").append("world").append("java"); System.out.println("sb:" + sb); // 截取功能 // public String substring(int start) String s = sb.substring(5); System.out.println("s:" + s); System.out.println("sb:" + sb); // public String substring(int start,int end) String ss = sb.substring(5, 10); System.out.println("ss:" + ss); System.out.println("sb:" + sb); } }

    運行結果:

    7. StringBuffer類練習

    7.1 String和StringBuffer的相互轉換

    package cn.itcast_07; /* * 為什么我們要講解類之間的轉換: * A -- B的轉換 * 我們把A轉換為B,其實是為了使用B的功能。 * B -- A的轉換 * 我們可能要的結果是A類型,所以還得轉回來。 * * String和StringBuffer的相互轉換? */ public class StringBufferTest { public static void main(String[] args) { // String -- StringBuffer String s = "hello"; // 注意:不能把字符串的值直接賦值給StringBuffer // StringBuffer sb = "hello"; // StringBuffer sb = s; // 方式1:通過構造方法 StringBuffer sb = new StringBuffer(s); // 方式2:通過append()方法 StringBuffer sb2 = new StringBuffer(); sb2.append(s); System.out.println("sb:" + sb); System.out.println("sb2:" + sb2); System.out.println("---------------"); // StringBuffer -- String StringBuffer buffer = new StringBuffer("java"); // String(StringBuffer buffer) // 方式1:通過構造方法 String str = new String(buffer); // 方式2:通過toString()方法 String str2 = buffer.toString(); System.out.println("str:" + str); System.out.println("str2:" + str2); } }

    運行結果:

    7.2 把數組拼接成一個字符串

    package cn.itcast_07; /* * 把數組拼接成一個字符串 */ public class StringBufferTest2 { public static void main(String[] args) { // 定義一個數組 int[] arr = { 44, 33, 55, 11, 22 }; // 定義功能 // 方式1:用String做拼接的方式 String s1 = arrayToString(arr); System.out.println("s1:" + s1); // 方式2:用StringBuffer做拼接的方式 String s2 = arrayToString2(arr); System.out.println("s2:" + s2); } // 用StringBuffer做拼接的方式 public static String arrayToString2(int[] arr) { StringBuffer sb = new StringBuffer(); sb.append("["); for (int x = 0; x < arr.length; x++) { if (x == arr.length - 1) { sb.append(arr[x]); } else { sb.append(arr[x]).append(", "); } } sb.append("]"); return sb.toString(); } // 用String做拼接的方式 public static String arrayToString(int[] arr) { String s = ""; s += "["; for (int x = 0; x < arr.length; x++) { if (x == arr.length - 1) { s += arr[x]; } else { s += arr[x]; s += ", "; } } s += "]"; return s; } }

    運行結果:

    7.3 把字符串反轉

    package cn.itcast_07; import java.util.Scanner; /* * 把字符串反轉 */ public class StringBufferTest3 { public static void main(String[] args) { // 鍵盤錄入數據 Scanner sc = new Scanner(System.in); System.out.println("請輸入數據:"); String s = sc.nextLine(); // 方式1:用String做拼接 String s1 = myReverse(s); System.out.println("s1:" + s1); // 方式2:用StringBuffer的reverse()功能 String s2 = myReverse2(s); System.out.println("s2:" + s2); } // 用StringBuffer的reverse()功能 public static String myReverse2(String s) { // StringBuffer sb = new StringBuffer(); // sb.append(s); // StringBuffer sb = new StringBuffer(s); // sb.reverse(); // return sb.toString(); // 簡易版 return new StringBuffer(s).reverse().toString(); } // 用String做拼接 public static String myReverse(String s) { String result = ""; char[] chs = s.toCharArray(); for (int x = chs.length - 1; x >= 0; x--) { // char ch = chs[x]; // result += ch; result += chs[x]; } return result; } }

    運行結果:

    7.4 判斷一個字符串是否是對稱字符串

    package cn.itcast_07; import java.util.Scanner; /* * 判斷一個字符串是否是對稱字符串 * 例如"abc"不是對稱字符串,"aba"、"abba"、"aaa"、"mnanm"是對稱字符串 * * 分析: * 判斷一個字符串是否是對稱的字符串,我只需要把 * 第一個和最后一個比較 * 第二個和倒數第二個比較 * ... * 比較的次數是長度除以2。 */ public class StringBufferTest4 { public static void main(String[] args) { // 創建鍵盤錄入對象 Scanner sc = new Scanner(System.in); System.out.println("請輸入一個字符串:"); String s = sc.nextLine(); // 一個一個的比較 boolean b = isSame(s); System.out.println("b:" + b); //用字符串緩沖區的反轉功能 boolean b2 = isSame2(s); System.out.println("b2:"+b2); } public static boolean isSame2(String s) { return new StringBuffer(s).reverse().toString().equals(s); } // public static boolean isSame(String s) { // // 把字符串轉成字符數組 // char[] chs = s.toCharArray(); // // for (int start = 0, end = chs.length - 1; start <= end; start++, end--) { // if (chs[start] != chs[end]) { // return false; // } // } // // return true; // } public static boolean isSame(String s) { boolean flag = true; // 把字符串轉成字符數組 char[] chs = s.toCharArray(); for (int start = 0, end = chs.length - 1; start <= end; start++, end--) { if (chs[start] != chs[end]) { flag = false; break; } } return flag; } }

    運行結果:

    總結

    以上是生活随笔為你收集整理的Java基础:String类的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。