" +"运算符不在我的代码中

时间:2017-03-20 03:08:09

标签: java string operators string-concatenation

String +操作有一个错误,这很奇怪:

String path = "/app/" + monPHost.getUsername() + "/app/" + monProcessInfo.getRegion() + "/tf/bin";

System.out.println("here it ...." + path);

结果如下:

here it ..../app/aiams/app/791 

" / tf / bin"走了吗?

4 个答案:

答案 0 :(得分:2)

也许 monProcessInfo.getRegion()以回车结束。尝试预处理它,剥离它,并用你的字符串连接。

或者,试试这个:

String path = "/app/" + monPHost.getUsername() + "/app/" + monProcessInfo.getRegion();
path = path + "/tf/bin";
System.out.println("here it ...." + path);

答案 1 :(得分:2)

快速解决您所获得的所有空间:

String path = "/app/" + monPHost.getUsername() + "/app/" + monProcessInfo.getRegion().trim() + "/tf/bin";

System.out.println("here it ...." + path);

我建议在你的过程对象中跟踪它并在那里修复它,如果你只是期望一个整数结果试着返回一个,快速失败&早期可以防止很多下游漏洞。

答案 2 :(得分:1)

在评论中你提到monProcessInfo.getRegion()给你一个包含大量空格的字符串,你还没有提到这种方法的返回类型,你可以这样做:

如果它返回一个字符串:

就像

一样简单
String path = "...." + monProcessInfo.getRegion().trim() + "/tf/bin";

如果它返回别的东西:

给定Java中的字符串连接依赖于Object.toString(),您可以将其更改为:

String path = "...." + monProcessInfo.getRegion().toString().trim() + "/tf/bin";

答案 3 :(得分:0)

由于您提到 monProcessInfo.getRegion()会返回大量空格,因此您可以尝试修剪它,然后再将其附加到字符串的后半部分。

StringBuilder sb = new StringBuilder();

sb.append("/app/" + monPHost.getUsername() + "/app/");
String region = ("" + monProcessInfo.getRegion()).trim();    
sb.append(region + "/tf/bin");

System.out.println("here it ...." + sb.toString());