创建字符串

时间:2018-06-12 22:16:25

标签: java string concatenation

我正在创建一些对象,其中包含从数组中读取的详细信息。对于我想要的一个实例变量,它们将具有标准格式,部分是升序数。具体来说,我正在创建一堆Location个对象,我想要描述“Flat 1”,“Flat 2”等。

我想知道在为String分配值时是否有一种简单的方法可以执行添加操作。剥离到相关部分,我的代码是:

int size = locations.size();
Location l;
for (int i=0; i<size; i++){
    l = new Location ("Flat " + i + 1); //LINE A
    addLocation(l);
}
//several bits of code have been removed and swapped around here, I realise 
//that that snippet doesn't really perform anything useful

然而,Java将LINE A中的“+”符号解释为连接,意味着我得到“Flat 01”,“Flat 11”,“Flat 21”等。

显然我可以改变循环的工作方式,但我很好奇是否可以在myString = value + 2类型语句中执行计算?

2 个答案:

答案 0 :(得分:4)

字符串连接是左关联的,所以你要做的就是在括号中包含你想要的值,以确保它首先计算:

l = new Location ("Flat " + i + 1);

实际上是:

l = new Location (("Flat " + i) + 1);

首先将i附加到字符串"Flat ";然后附加1

应该是:

l = new Location ("Flat " + (i + 1));

答案 1 :(得分:3)

使用括号:

l = new Location ("Flat " + (i + 1)); //LINE A