Java字符串连接

jim*_*mmy 2 java string concatenation

我的java代码有问题.我昨天问了同样的问题.我得到了答案,但对不起,这是我的错.我的问题不明确.

我的代码看起来像这样:

 for(i = 0; i < geo.getTargets().length ; i++ )
    {
        if(geo.getTargets(i).getTargetType().equalsIgnoreCase("ProximityTarget"))
        {
            final ProximityTarget prox = (ProximityTarget)geo.getTargets(i);
            prox.getGeoPoint().getLatitudeInMicroDegrees(); 
            prox.getGeoPoint().getLongitudeInMicroDegrees();
            prox.getRadiusDistanceUnits();
        }
    }
Run Code Online (Sandbox Code Playgroud)

以上三种方法都会给我一些价值.

我希望这些值以这种格式放置:

circle:long:lat:radius | circle:long:lat:radius | .....
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我修复这段代码.我希望将这些值连接在一个字符串中,以便将其插入到我的数据库字段中.

Thi*_*Roy 5

试试这个:

StringBuilder sb = new StringBuilder();
for(i = 0; i < geo.getTargets().length ; i++ ){
  if(geo.getTargets(i).getTargetType().equalsIgnoreCase("ProximityTarget")){
    final ProximityTarget prox = (ProximityTarget)geo.getTargets(i);
    float longitude = prox.getGeoPoint().getLatitudeInMicroDegrees()); 
    float lat = prox.getGeoPoint().getLongitudeInMicroDegrees());
    float radius = prox.getRadiusDistanceUnits();

    if (sb.isEmpty()) {
        sb.append("circle:" + longitude + ":" + lat + ":" + radius);
    else {
        sb.append(" | circle:" + longitude + ":" + lat + ":" + radius);
    }
  }
}
String result = sb.toString();
Run Code Online (Sandbox Code Playgroud)

  • 也可以使用sb.append("circle:").append(longitude).append(":").append ... etc. - 我相信这可能比使用"+"连接符更高效. (5认同)
  • 那是什么?使用`StringBuilder`和`+`在一起.为什么不在没有`StringBuilder`的情况下使用`+`?(或者只是`StringBuilder`,如果你需要优化) (3认同)
  • 这应该像Lunivore建议的那样被打破.不要混合使用StringBuilder.append和+运算符.StringBuilder提供了优化,并将它们与+运算符混合使用失败了. (2认同)
  • @Lunivore,@ Carlos,@ Erick,我不同意.@Lunivore:Java中的AFAIK,无论如何都使用隐藏的StringBuilder实现了这种+.@Carlos,@ Erick:优化在小字符串上并不重要.在这个例子中,使用+ inside sb.append()是一个好东西,对于一个地方的可读性并不是真正需要优化.将StringBuilder用于全局字符串有利于在有用的地方进行优化.在混合+和StringBuilder这种方式中根本没有逻辑上的不兼容性(否则我会说StringBuilder太不安全......) (2认同)