陣列和字串在 Java 中

https://dev.to/harshm03/arrays-and-strings-in-java-3geh

Java 中的數組和字符串

Java 中的數組

Java 中的數組是用於將相同類型的多個值存儲在單個變量中的基本數據結構。 它們提供了一個固定大小的有序元素集合,是 Java 編程的重要組成部分。 本指南涵蓋了 Java 中數組的所有內容。

1. 声明和初始化數組

數組可以以各種方式進行聲明和初始化。

聲明:

int[] numbers;
String[] names;

初始化:

numbers = new int[5]; // 一個包含 5 個整數的數組
names = new String[3]; // 一個包含 3 個字符串的數組

結合聲明和初始化:

int[] numbers = new int[5];
String[] names = new String[3];

靜態初始化:

int[] numbers = {1, 2, 3, 4, 5};
String[] names = {“Alice”, “Bob”, “Charlie”};

2. 訪問數組元素

可以使用它們的索引訪問數組元素。 索引從 0 開始計算。

int firstNumber = numbers[0];
String firstName = names[0];

3. 修改數組元素

可以通過將新值分配給特定索引來修改數組元素。

numbers[0] = 10;
names[0] = “David”;

4. 數組長度

可以使用長度屬性獲取數組的長度。

int arrayLength = numbers.length;

5. 遍歷數組

可以使用循環遍歷數組。

For 循環:

for (int i = 0; i < numbers.length; i++) { System.out.println(numbers[i]); } 增強型 For 循環: for (int number : numbers) { System.out.println(number); } 6. 多維數組 Java 支持多維數組(數組的數組)。 聲明和初始化: int[][] matrix = new int[3][3]; int[][] predefinedMatrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; 訪問和修改元素: int element = matrix[0][0]; matrix[0][0] = 10; 7. 數組方法 Java 在 java.util.Arrays 類中提供了數組的實用方法。 排序: Arrays.sort(numbers); 二進制搜索: int index = Arrays.binarySearch(numbers, 3); 複製: int[] copiedArray = Arrays.copyOf(numbers, numbers.length); 填充: Arrays.fill(numbers, 0); 比較: boolean areEqual = Arrays.equals(numbers, copiedArray); 字符串表示: String arrayString = Arrays.toString(numbers); 8. 常見問題 索引越界:訪問超出數組範圍的索引會引發 ArrayIndexOutOfBoundsException。 int invalidElement = numbers[10]; //引發 ArrayIndexOutOfBoundsException 空元素:對象數組可以包含空元素。 String[] strings = new String[5]; strings[0] = null; //有效 固定大小:數組具有固定大小,一旦初始化,它們的大小就無法更改。對於動態數組,請使用 ArrayList。 Java 中的字符串 字符串是 Java 編程的重要部分。 Java 中的 String 類用於創建和操作字符串。 本指南涵蓋了 Java 中字符串的所有內容。 1. 創建字符串 字符串可以以幾種方式創建: 使用字符串文本: String str1 = "Hello, World!"; 使用 new 關鍵字: String str2 = new String("Hello, World!"); 從 char 數組: char[] chars = {'H', 'e', 'l', 'l', 'o'}; String str3 = new String(chars); 2. 字符串不可變性 Java 中的字符串是不可變的,這意味著一旦創建了字符串對象,就無法更改。 任何修改都將產生新的字符串對象。 String original = "Hello"; String modified = original.concat(", World!"); System.out.println(original); // 輸出:Hello System.out.println(modified); // 輸出:Hello, World! 3. 常見字符串方法 String 類提供許多字符串操作和分析方法。 字符串長度: int length = str1.length(); 特定索引處的字符: char ch = str1.charAt(0); 子字符串: String substr = str1.substring(7, 12); // 輸出:World 連接: String str5 = str1.concat(" How are you?"); 字符或子字符串的索引: int index = str1.indexOf('W'); // 輸出:7 比較: boolean equals = str1.equals("Hello, World!"); // true boolean equalsIgnoreCase = str1.equalsIgnoreCase("hello, world!"); // true int compareTo = str1.compareTo("Hello, World!"); // 0(按字母順序相等) 替換字符或子字符串: String replaced = str1.replace('l', 'p'); // Heppo, Worpd! String replacedSubstring = str1.replace("World", "Java"); // Hello, Java! 拆分字符串: String[] parts = str1.split(", "); 修剪空格: String trimmed = str1.trim(); 轉換為大寫/小寫: String upperCase = str1.toUpperCase(); String lowerCase = str1.toLowerCase(); 4. 字符串池 Java 通過將字符串存儲在稱為字符串池的特殊區域來優化字符串對象的內存使用。 當您創建字符串文本時,JVM 會檢查字符串池,看它是否已經存在。 如果存在,它將返回對現有字符串的引用。 否則,它將創建一個新的字符串並將其添加到池中。 String s1 = "Hello"; String s2 = "Hello"; boolean isSame = (s1 == s2); // true,都引用字符串池中的同一對象 在 Java 中的字符串格式化 字符串格式化是 Java 編程的重要方面,允許您創建結構良好且易於閱讀的文本。 Java 提供了幾種格式化字符串的方式,包括 String.format(),System.out.printf()和簡單的字符串串聯。 1. String.format()方法 String.format()方法允許您使用各種格式化指示符創建格式化字符串,類似於 C/C++中的 printf。 基本語法: String formattedString = String.format(format, arguments); 格式指示符: %s:字符串 %d:十進制整數 %f:浮點數 %x:十六進制整數 %o:八進制整數 %c:字符 %%:百分比符號 示例: int age = 25; String name = "Alice"; double score = 95.5; String formattedString = String.format("Name: %s, Age: %d, Score: %.2f", name, age, score); System.out.println(formattedString); // 輸出:Name: Alice, Age: 25, Score: 95.50 標誌和寬度: -:左對齊 +:包括符號(+或-) 0:以零填充 ,:包括分組分隔符 (寬度):要打印的最小字符數 帶標誌的示例: int number = 12345; String formattedNumber = String.format("%,d", number); System.out.println(formattedNumber); // 輸出:12,345 double price = 123.456; String formattedPrice = String.format("%010.2f", price); System.out.println(formattedPrice); // 輸出:0000123.46 2. System.out.printf()方法 System.out.printf()方法直接將格式化輸出打印到控制台。它使用與 String.format()相同的格式指示符。 示例: String name = "Alice"; int age = 25; double score = 95.5; System.out.printf("Name: %s, Age: %d, Score: %.2f%n", name, age, score); // 輸出:Name: Alice, Age: 25, Score: 95.50 3. 使用+進行字符串串聯 對於基本的字符串格式化需求,可以使用+運算符進行簡單的字符串串聯。儘管它缺乏 String.format()和 System.out.printf()的靈活性,但對於簡單的任務來說非常直觀。 示例: String name = "Alice"; int age = 25; double score = 95.5; String concatenatedString = "Name: " + name + ", Age: " + age + ", Score: " + score; System.out.println(concatenatedString); // 輸出:Name: Alice, Age: 25, Score: 95.5 Java 中的字符串方法 字符檢索 charAt(int index) 返回指定索引處的字符。 語法:str.charAt(index) String s = "hello"; System.out.println(s.charAt(1)); // 輸出:'e' 比較 compareTo(String anotherString) 對兩個字符串進行按字典順序比較。 語法:str.compareTo(anotherString) String s1 = "hello"; String s2 = "world"; System.out.println(s1.compareTo(s2)); // 輸出:-15 compareToIgnoreCase(String str) 對兩個字符串進行按字典順序比較,忽略大小寫的差異。 語法:str.compareToIgnoreCase(str) String s1 = "hello"; String s2 = "HELLO"; System.out.println(s1.compareToIgnoreCase(s2)); // 輸出:0 連接 concat(String str) 將指定的字符串連接到這個字符串的尾部。 語法:str.concat(str) String s1 = "hello"; String s2 = "world"; System.out.println(s1.concat(" ").concat(s2)); // 輸出:"hello world" 搜索 contains(CharSequence s) 當且僅當此字符串包含指定的 char 值序列時返回 true。 語法:str.contains(s) String s = "hello world"; System.out.println(s.contains("world")); // 輸出:true endsWith(String suffix) 測試此字符串是否以指定的後綴結尾。 語法:str.endsWith(suffix) String s = "hello"; System.out.println(s.endsWith("lo")); // 輸出:true indexOf(int ch) 返回指定字符在此字符串中第一次出現的索引。 語法:str.indexOf(ch) String s = "hello"; System.out.println(s.indexOf('e')); // 輸出:1 indexOf(String str) 返回指定子字符串在此字符串中第一次出現的索引。 語法:str.indexOf(str) String s = "hello"; System.out.println(s.indexOf("ll")); // 輸出:2 indexOf(int ch, int fromIndex) 返回指定字符在此字符串中第一次出現的索引,從指定的索引開始搜索。 語法:str.indexOf(ch, fromIndex) String s = "hello"; System.out.println(s.indexOf('l', 3)); // 輸出:3 indexOf(String str, int fromIndex) 返回指定子字符串在此字符串中第一次出現的索引,從指定的索引開始搜索。 語法:str.indexOf(str, fromIndex) String s = "hello"; System.out.println(s.indexOf("l", 3)); // 輸出:3 lastIndexOf(int ch) 返回指定字符在此字符串中最後一次出現的索引。 語法:str.lastIndexOf(ch) String s = "hello"; System.out.println(s.lastIndexOf('l')); // 輸出:3 lastIndexOf(String str) 返回指定子字符串在此字符串中最後一次出現的索引。 語法:str.lastIndexOf(str) String s = "hello"; System.out.println(s.lastIndexOf("l")); // 輸出:3 相等性 equals(Object anObject) 將此字符串與指定對象進行比較。 語法:str.equals(anObject) String s1 = "hello"; String s2 = "hello"; System.out.println(s1.equals(s2)); // 輸出:true equalsIgnoreCase(String anotherString) 將此字符串與另一個字符串進行比較,忽略大小寫。 語法:str.equalsIgnoreCase(anotherString) String s1 = "hello"; String s2 = "HELLO"; System.out.println(s1.equalsIgnoreCase(s2)); // 輸出:true 長度 length() 返回此字符串的長度。 語法:str.length() String s = "hello"; System.out.println(s.length()); // 輸出:5 替換 replace(char oldChar, char newChar) 將此字符串中所有 oldChar 的出現替換為 newChar。 via DEV Community June 29, 2024 at 12:38PM

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *