2013-02-27 64 views
-1

有時我想將多個變量轉換爲字符串以通過消息或方法發送。將變量值轉換爲單個字符串並退出

例如, 如果我有這些變量:

int addressNum = 223; 
String stName = "Main St"; 
String city = "Chicago"; 

我怎麼會是隱蔽到一個字符串"223; Main St; Chicago"和回變量?

回答

3

我會用某種(, :)

String fullAddress+=addressNum+":"+stName+":"+city; 

後來的分隔符,基於使用的分隔符分割fullAddress。

String[] arr = fullAddress.split(":"); 
int addressNumber = Integer.parseInt(arr[0]); 
String streetName = arr[1]; 
String cityName = arr[2]; 
+0

'addressNum'雖然是一個int。 – squiguy 2013-02-27 20:18:21

+1

@squiguy如果你的意思是,在回想它時,你可以使用Integer.parseInt() – PermGenError 2013-02-27 20:19:18

+0

將它轉換回int是的,只是想我會指出:) – squiguy 2013-02-27 20:21:09

0

替代字符串,寫入保存數據的包裝類:

public class SomeWrapper 
{ 
    int addressNum; 
    String stName; 
    String city; 

    // constructors, setters and getters 
} 

然後使用它像:

SomeWrapper w = new SomeWrapper(223, "Main St", "Chicago"); 

和提取它是這樣的:

int addressNum = w.getAddressNumber(); 
String stName = w.getStreetName(); 
String city = w.getCity(); 

只是你可以通過它來滿足如下所示:

public static void doSomething(SomeWrapper w) 
{ 
    int addressNum = w.getAddressNumber(); 
    // ... 
} 

// ... 

public static void main(String[] args) 
{ 
    SomeWrapper w = ...; 
    doSomething(w); 
} 
0

您選擇的編碼必須是可逆的(雙射)。

  • 字符串可能被引用
  • 字段名稱可以被使用:adress="value"
  • 分離器應該很好地選擇;也就是說,它不會出現在「正常」值...
  • ...

使用標準像JSonByteBuffer可能是一個更好的做法。

1
String oneLine = addressNum + "; " + stName + "; " + city; - make it in sinle line 

// split it to variables below 
String[] arr = oneLine.split(";"); 
addressNum = Integer.parseString(arr[0].trim()); 
stName = arr[1].trim(); 
city = arr[2].trim();