2014-03-28 80 views
0

我是完整的初學者。我有一個打印與syso jsonText的值。我該怎麼做才能將這個值保存在一個變量中,並將所有for的長度值連接起來。這是我的代碼。謝謝。問題變量爲循環java

for(int i=0;i<nodes.getLength();i++) { 
    Element element = (Element)nodes.item(i); 

    Map<String, String> obj=new LinkedHashMap<String, String>(); 
    obj.put("category",getElementValue(element,"category")); 
    obj.put("title",getElementValue(element,"title")); 
    obj.put("date",getElementValue(element,"pubDate")); 
    obj.put("description",getElementValue(element,"description")); 
    obj.put("content",getElementValue(element,"content:encoded")); 
    StringWriter out = new StringWriter(); 
    JSONValue.writeJSONString(obj, out); 
    String jsonText = out.toString(); 
    System.out.println(jsonText); 

} 
+1

見類的StringBuilder –

回答

0

您可以使用StringBuilder來連接jsonText。 ;

String allStrings = ""; 

然後使用string1.concat(字符串2):

StringBuilder builder = new StringBuilder(); 
    for(int i=0;i<nodes.getLength();i++) { 
     Element element = (Element)nodes.item(i); 

     Map<String, String> obj=new LinkedHashMap<String, String>(); 
     obj.put("category",getElementValue(element,"category")); 
     obj.put("title",getElementValue(element,"title")); 
     obj.put("date",getElementValue(element,"pubDate")); 
     obj.put("description",getElementValue(element,"description")); 
     obj.put("content",getElementValue(element,"content:encoded")); 
     StringWriter out = new StringWriter(); 
     JSONValue.writeJSONString(obj, out); 
     String jsonText = out.toString(); 
     System.out.println(jsonText); 
     builder.append(jsonText); 
    } 
+0

謝謝你,但後來我做的建設者,而不是顯示器的Syso所有內容,也許內容是那麼的漫長,有沒有解決方案呢?謝謝 – user3383415

+0

你有很長的字符串?如果它不能附加所有的字符串,你將會收到一個java.lang.OutOfMemoryError:Java heap space錯誤。也許你的終端不能/不會顯示很長的字符串。您可以使用length()方法來查看StringBuilder的實際長度。 – Slimu

-2

你可以外面的for循環創建一個全局變量方法:

allStrings = allStrings.concat(jsonText); 
+1

字符串是不可變的,這意味着allStrings變量永遠不會被更新。 concat方法將總是返回最後一個jsonText,僅此而已。 – Slimu

+0

哦,對不起,我忘了給代碼添加一些東西。如果你寫allStrings = allStrings.concat(jsonText);它會工作。 –

0

簡單,

StringBuilder builder = new StringBuilder(); 
for(int i=0;i<nodes.getLength();i++) { 
    ..... your existing code .... 
    builder.append(jsonText); 
} 

String finalData = builder.toString(); 
+0

謝謝,但後來我做了一個建造者的Syso,並沒有顯示所有的內容,可能內容太長了,有沒有解決方案呢?謝謝 – user3383415