1、字串分割問題:
有這樣乙個需求:某個物件屬性(id、name、age、***、other)按照某個分隔符,列印成一行,然後再split拆分出來。例如:1#hello#12#man#sdfdsf
但事實上我們會遇到某些欄位為空的情況,例如:age為空、other為空。這時候就會出現乙個「詭異」的情況:如果最後乙個字段之前的某些欄位為空,split後的size就會是5;但如果最後你個字段為空,那麼split後的size就會小於5。
public static void main(string args)
public static void main(string args)
public static void main(string args)
下面的是小於5:
public static void main(string args)
public static void main(string args)
最後,對於上面size不一致的問題,想了乙個統一的解決辦法,就只在最後加乙個end,這樣無論哪個字段確實,只要最後乙個end在,那麼久一定會返回size=6。例如:
public static void main(string args)
public static void main(string args)
public static void main(string args)
2、物件初始化:
對於一些字段,如果沒有初始化,會被附上null。這時如果再把該字段賦值給另外乙個字段,有可能會有空指標異常。
public class test1
沒有初始化,這時會被附上null。當他被賦值時,就有可能空指標異常:
test2 t2 = new test2();
t2.setid(new test1().getid());
這樣看不會有空指標異常,因為把nullset給了test2物件。但是jdk會進行優化,將上面**優化成:
test2 t2 = new test2();
t2.setid(new test1().getid().longvalue());
這時,就會有空指標異常了。 字串初始化
在c語言程式設計中,當我們宣告乙個字串陣列的時候,常常需要把它初始化為空串。總結起來有以下三種方式 1 char str 10 2 char str 10 3 char str 10 str 0 0 第 1 2 種方式是將str陣列的所有元素都初始化為 0 而第 3 種方式是只將str陣列的第乙個元...
字串初始化
在 裡,經常會用字串進行初始化操作。比如 void func void 對於上面2條初始化語句,它們的區別是什麼呢?1,首先,hello world 是乙個字串常量,存放在靜態常量區。2,str1是乙個字元陣列,分配在棧上,儲存空間由 hello world 的長度 含 0 決定,存放的內容由 he...
字串初始化
字串初始化使用字串初始化操作符即百分號 標記轉化說明符的開始。在 左邊為格式化字串,右邊為被格式化的值。format hello,s.s enough?values world cold print format values hello,world.cold enough?格式化字串的 s部分為轉...