【问题标题】:Append a comma with StringBuilder用 StringBuilder 附加逗号
【发布时间】:2015-04-17 17:37:48
【问题描述】:

我遇到了一个小问题,我的代码可以正常工作并向我发送经度和纬度的输出。我只想用逗号和空格来分隔文本视图中的值。我不想要行分隔符。

我得到什么:32.67543-55.986454

我想要的:32.67543,-55.986454(逗号和空格)

有什么想法吗?

代码:

/**
 * After completing background task Dismiss the progress dialog
 * *
 */
protected void onPostExecute(JSONObject product) {
    if (product != null) {
        // product with this pid found
        // Edit Text
        lblDummyLocation = (TextView) findViewById(R.id.lblDummyLocation);

        StringBuilder jsonStringBuilder = new StringBuilder(); //Create StringBuilder for concatenation of JSON results

        // display profile data in EditText
        try {
            //txtMessage.setText(product.getString(TAG_FIRSTNAME));  //Don't set the text here
            jsonStringBuilder.append(product.getString(TAG_LATITUDE)); //Concatenate each separate item
            jsonStringBuilder.append(System.getProperty("line.separator"));
        } catch (JSONException e) {
            e.printStackTrace();
        }
        try {
            //txtMessage.setText(product.getString(TAG_LASTNAME));
            jsonStringBuilder.append(product.getString(TAG_LONGITUDE));
            //jsonStringBuilder.append(System.getProperty("line.separator"));
        } catch (JSONException e) {
            e.printStackTrace();
        }

        lblDummyLocation.setText(jsonStringBuilder.toString());
    }

    // dismiss the dialog once got all details
    pDialog.dismiss();
}

}

【问题讨论】:

  • jsonStringBuilder.append(", ")

标签: java android json stringbuilder comma


【解决方案1】:

获得纬度后的那个 line.separator 会在它后面放一个新行,我不认为你想要那个。

要添加逗号,只需再追加一次。

失败时只需要一个 try/catch 块。

StringBuilder jsonStringBuilder = new StringBuilder(); 

// display profile data in EditText
try 
{
    jsonStringBuilder.append(product.getString(TAG_LATITUDE));
    jsonStringBuilder.append(", ");                                
    jsonStringBuilder.append(product.getString(TAG_LONGITUDE));
    lblDummyLocation.setText(jsonStringBuilder.toString());            
} 
catch (JSONException e) 
{
    e.printStackTrace(); // use a logger for this ideally
    lblDummyLocation.setText("Failed to get co-ordinates");            
}

【讨论】:

    【解决方案2】:

    试试类似的东西

    jsonStringBuilder.append(product.getString(TAG_LATITUDE) + ", ");
    

    或者,您可以将经度放在前面:

    jsonStringBuilder.append(", " + product.getString(TAG_LONGITUDE));
    

    【讨论】:

    • 我不喜欢这种方法,因为它违背了拥有 StringBuilders 的目的。 Java 在后台做了一些事情并将 jsonStringBuilder.append(product.getString(TAG_LATITUDE) + ", "); 转换为 jsonStringBuilder.append(product.getString(new StringBuilder().append(TAG_LATITUDE).append(", ").toString()); 所以,从性能的角度来看,最好像 Sanj 建议的那样进行单独的附加调用
    猜你喜欢
    • 2011-12-31
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    • 2012-11-23
    • 2014-02-22
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    相关资源
    最近更新 更多