Chapter 7 Strings
1. 獲得字符串某個位置上的字符:str.charAt(int index)
如 "Welcome to Java".charAt(0) 返回 W ,注意這種寫法是正確的。
2. 字符串的長度:str.length()
注意數組的元素個數length是個屬性,而字符串長度length()是個方法。
3. 獲取字符串子串:str.substring(int beginIndex [, int endIndex]);
返回str字符串從beginIndex位開始(到endIndex位)的子串。
4. 字符串比較:
(1) str.equals(String string2)
For two strings x and y, x.equals(y) if and only if x.intern() == y.intern().
(2) s1.compareTo(String s2)
s1==s2 則返回 0
s1 > s2 則返回值>0
s1 < s2 返回值<0
s1 s2 大小判斷和Pascal類似,優先逐個比較字符,相同則比較長度。
(3) str.equalsIgnoreCase, regionMatches, startsWith, endsWith
顧名思義,具體方法用到了再查API文檔吧
5. 字符串變換
toLowerCase() toUpperCase() trim()
trim這個函數有點印象,貌似小學學BASIC的時候就背過個什么 RTRIM$ LTRTM$ 函數去前置和后置空格,trim 就是把頭尾的空格全去了。
"Welcome".replace('e', 'A') 返回"WAlcomA"
"Welcome".replaceFirst("e", "A") 返回"WAlcome"
"Welcome".replaceAll("e", "A") 返回"WAlcomA"
注意replaceFirst 和replaceAll 的被匹配子串("e")允許是正則表達式。
6. 查找
str.indexOf(int ch [, int fromIndex]) 查找str中(從fromIndex以后)的第一個ch出現的位置
str.lastIndexOf(int ch, int endIndex) 查找str中(endIndex以前)的最后一個ch出現的位置
類似的還有重載方法搜索子串位置
7. 轉換
(1) str.toCharArray()
(2) void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
Copies characters from this string into the destination character array.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
Copies characters from this string into the destination character array.
(3) static String.valueOf(type variable)
8. java.lang.StringBuffer 類
構造:StringBuffer()
StringBuffer(int capacity)
StringBuffer(String str)
幾個常用方法:append, insert, delete, reverse, replace, setCharAt, toString(), capaicity(), setLength(int)
其中若setLength的長度小于字符串長度,自動去掉多余的
9. java.util.StringTokenizer 類
StringTokenizer(String str [, String delim] [, boolean returnDelims])
自動通過delim分割字符串為幾個子串。
10. java.util.Scanner 類 (JDK 1.5 新增)
Scanner的分隔符(delimiter)可以是一個字符串或正則表達式,與StringTokenizer不同。
11. 命令行參數 Command-Line Arguments
java TestMain arg0 arg1 arg2 ...
main(String[] args) 中args[]數組保存了響應的參數字符串。
如果參數中帶空格,如要把First num做一個獨立的參數,則需加上引號,即java TestMain "First num" arg1 ....
如果參數中帶*號,則也要加上" " 號,否則會把當前目錄下的所有文件名作為參數提交給程序。
這個程序顯示了當前目錄下的所有文件:
public class ShowFiles {
public static void main(String[] args) {
for (int i = 0; i > args.length; i++) {
System.out.println(args[i]);
}
}
}
編譯后運行 java ShowFiles *
選了道習題做了下
Exercise 7.10
import javax.swing.*;
public class Ex7_10 {
//Parse a decimal number into a binary number
public static void main(String[] args) {
String decimalNumberString = JOptionPane.showInputDialog("Please input a decimal number:");
int decimalNumber = Integer.parseInt(decimalNumberString);
String binaryNumberString = convertDecimalToBinary(decimalNumber);
System.out.println(binaryNumberString);
}
public static String convertDecimalToBinary(int decimalNumber) {
StringBuffer result = new StringBuffer();
while (decimalNumber < 0) {
result = result.insert(0, decimalNumber % 2);
decimalNumber /= 2;
}
return result.toString();
}
}