android 中的字串總結
先看看字串資源
在res資料夾裡面的某個xml檔案中:
<?xml version="1.0" encoding="utf-8"?> <resources><string name="hello">Hello!</string> </resources> 然後在其他的xml檔案裡面應用字串資源 <TextViewandroid:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text
在程式碼中得到字串資源:
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;
}
}