1. 程式人生 > >android 中的字串總結

android 中的字串總結

先看看字串資源

在res資料夾裡面的某個xml檔案中:

    <?xml version="1.0" encoding="utf-8"?>    <resources><string name="hello">Hello!</string>    </resources> 然後在其他的xml檔案裡面應用字串資源 <TextView
    
android:layout_width="fill_parent"
    android:layout_height
="wrap_content"
    android:text
="@string/hello"/>

在程式碼中得到字串資源:

   String s = getString(R.string.hello)

   Activity和Context和Application類都有這個函式。

字串型別有這幾種:

String,StringBuffer(執行緒安全),StringBuilder(非執行緒安全,效率稍高),CharBuffer

這幾個類都實現了CharSequence介面

1 String:

    字串常量,其屬性為final,

    String a = "1";  
    a = a + "2";

    這樣做,其實生成了一個新的String物件,然後a再指向新的物件。

    格式化String:

2 StringBuffer

    字串變數,執行緒安全,用於需要對字串進行修改的情況,比如新增或刪除子串。

    它的各種成員函式都是對自身操作,不會產生新的物件。

    建構函式:

        StringBuffer s = new StringBuffer();

        StringBuffer sb1 = new StringBuffer(“123”);
        StringBuffer sb2 = new StringBuffer(s);    //s為String物件

    toString函式:

        String s = sb1.toString();

    append函式:

        用於連線字串:

        StringBuffer sb = new StringBuffer();
        String user = “test”;
        String pwd = “123”;
        sb.append(“select * from userInfo where
            username=“).

            append(user).

            append(“ and pwd=”).

            append(pwd);

        這種方法比String類的+效率要高些。

    deleteCharAt(int index):

        刪除某個字元。

    public StringBuffer delete(int start,int end)

         刪除的是一段連續的字串,刪除的字元包括start但不包括end。

     public StringBuffer reverse();

    public void setCharAt(int index, char ch)

    public void trimToSize(int size);

    int length();

    setlength(int )

    int capacity() 獲取容量,ensureCapacity()確保有一定容量。

    getChars(int start,int end,char chars[],int charStart);

        複製一段字元到char陣列。

        String s=”Who are you”;
        Int start=0;
        Int end=5;
        Char ch1[]=new char[start-end];
        S.getChars(start,end,ch1,0);
        System.out.println (ch1);

數字轉字串:

    String s;

    int i;

    s = String.valueOf(i);

    // 或者 s = Integer.toString(i);

字串轉數字的函式:

出處:http://hi.baidu.com/yangyxd/item/2a4ba1fbd4a5d24a922af204

/** 轉換字串為數字 */ public static int strToInt(String value, int defaultValue) {  try  return Integer.valueOf(value);  catch (Exception e) {  return defaultValue;  /** 轉換字串為數字 */ public static long strToInt(String value, long defaultValue) {  try  return Long.valueOf(value);  catch (Exception e) {  return defaultValue;  /** 轉換16進位制字串為數字 */ public static int hexToInt(String value, int defaultValue) {  try  return Integer.parseInt(value, 16);  catch (Exception e) {  return defaultValue;  /** 轉換16進位制字串為數字 */ public static long hexToInt(String value, long defaultValue) {  try  return Long.parseLong(value, 16);  catch (Exception e) {  return defaultValue;  /** 轉換字串為數字 */ public static float strToFloat(String value, float defaultValue) {  try  return Float.valueOf(value);  catch (Exception e) {  return defaultValue;  /** 轉換字串為數字 */ public static double strToDouble(String value, double defaultValue) {  try  return Double.valueOf(value);  catch (Exception e) {  return defaultValue;  }