我正在创建一些对象,其中包含从数组中读取的详细信息。对于我想要的一个实例变量,它们将具有标准格式,部分是升序数。具体来说,我正在创建一堆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
类型语句中执行计算?
答案 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