2012-10-23 42 views
0

刪除字符串數據的一部分,在JavaScript中有兩個String數組一樣我如何從字符串它們是互相依賴在Java

var names = [name1, name2, name3, name4]; 
var values = [value1, value2, value3, value4]; 

我需要將這些值發送到後端。我發送如下

var nameString = "name1,name2,name3,name4"; 
var valuesString = "value1,value2,value3,value4"; 

然後,我將遍歷它在Java地圖。我的問題是,如果我想從名稱字符串中刪除名稱,valueString中的相應值也應該刪除。如何以優化的方式在java端做到這一點。

Ex: If i want to remove name3, then new strings should be like following: 
    In Java side: 
    String nameString = "name1,name2,name4"; 
    String valueString = "value1,value2,value4"; 
+0

爲什麼不把它存儲爲JSON對象?由於看起來名稱和價值觀之間存在一對一的關係,因此它會很有意義。有一些庫允許你在Java中使用JSON http://www.json.org然後,你可以從JSON對象中刪除屬性,一切都很好。 – clentfort

+0

我需要將這些nameString,valueString設置爲一個java bean –

回答

1

在javascript:

var data = {name1:value1, name2:value1, name3:value1, name4:value1}; 

(如果需要的引用),所述發送的對象作爲JSON,和在Java解析它。 http://www.json.org/java/

我不是一個java開發,所以不能幫助你這麼多具體的代碼,但該方法其同樣爲所有languajes

+1

+1優秀的方法,但是我建議使用更加現代化和易用的庫,例如[google-gson](http://code.google.com/p/google-gson /)或[Jackson](http://wiki.fasterxml.com/JacksonHome)。 – fvu

1

在Java中,你可以這樣做:

public static void main(String[] args) { 
    String nameString = "name1,name2,name3,name4"; 
    String valueString = "value1,value2,value3,value4"; 

    nameString = removeSection(nameString, 2); 
    valueString = removeSection(valueString, 2); 

    System.out.println(nameString); 
    System.out.println(valueString); 

} 

private static String removeSection(String val, int del){ 
    String[] a = val.split(","); 
    String[] b = new String[a.length-1]; 

    System.arraycopy(a,0,b,0,del); 
    System.arraycopy(a,del+1,b,del,a.length-1-del); 

    val = arrayToString(b); 

    return val; 
} 

private static String arrayToString(String[] a){ 
    String newStr = ""; 
    for (int i=0; i<a.length; i++) { 
     if(i==0){ 
      newStr += a[i]; 
     }else{ 
      newStr += ","+a[i]; 
     } 
    } 
    return newStr; 
}