1、String類、StringBuilder類、StringBuffer類
String對象是不可變的,重載了運算子+,於是String s="a"+2+"b"+2.2;這條語句就建立了4個String對象對象,把最後建立的對象引用賦給s。
但是String類定義了許多常用的對字串進行操作的方法:取字串長度length、判斷是否為空白串isEmpty、返回字元數組或位元組數組toCharArray()、取得指定索引的字元charAt()、字串比較equals()compareTo()、字元轉換成大寫或小寫toLowerCase()、以什麼字元開頭或者結尾startWith()、判斷是否包含某個字元contains()、索引字串indexOf()、擷取子串substring()、字串串連concat()、字串代替replace()、去掉字元兩端空格trim()、返回表示參數內容的字串對象valueOf()、分割字串返回字串數組split()。注意分割時傳入的是Regex。String類並沒有提供字串翻轉的功能。
String對象是不可變的,所以常常用StringBuilder類來構造字串。StringBuilder類提供了字串串連、刪除單個字元、刪除指定字元序列、插入字元等功能。如果要保證安全執行緒,則應該用StringBuffer類,方法同StringBuilder。
2、格式化輸出
以下樣本了java中格式化輸出到控制台和檔案中
package demo.others;import java.io.FileNotFoundException;import java.io.PrintStream;import java.util.Formatter;/** * Formatter類用于格式化 * * @author Touch * */public class FormatterDemo {public static void main(String[] args) {int i = 1;double d = 2.2352353456345;// 1.兩種最簡單的格式化輸出,類似c語言中的printf函數System.out.format("%-3d%-5.3f\n", i, d);System.out.printf("%-3d%-5.3f\n", i, d);// Formatter類的使用// 2.格式化輸出到控制台Formatter f = new Formatter(System.out);f.format("%-3d%-8.2f%-10s\n", i, d, "touch");// 3.格式化輸出到檔案Formatter ff = null;try {ff = new Formatter(new PrintStream("file/formater.txt"));} catch (FileNotFoundException e) {e.printStackTrace();}ff.format("%-3d%-8.2f%-10s\n", i, d, "touch");// 4.String.format().同c語言中sprintf()System.out.println(String.format("(%d%.2f%s)", i, d, "touch"));}}
3、以十六進位查看二進位檔案的工具類
package mine.util.others;/** * 以十六進位查看二進位檔案 */public class Hex {public static String format(byte[] data) {StringBuilder result = new StringBuilder();int n = 0;for (byte b : data) { if(n%16==0) result.append(String.format("%05x: ",n)); result.append(String.format("%02x ",b)); n++; if(n%16==0) result.append('\n');}return result.toString();}}