字串分割和物件初始化小實戰

2021-07-29 19:48:55 字數 1322 閱讀 3404

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部分為轉...