2011-06-05 193 views
13

比方说,我已经从游标获得一个字符串,像这样:连接两个字符串

String name = cursor.getString(numcol); 

和另一个字符串像这样的:

String dest=cursor.getString(cursor.getColumnIndexOrThrow(db.KEY_DESTINATIE)); 

如果最后我想获得的字符串他们两个人的,是这样的:

name - dest 

让我们说,如果名称=马尔默和dest =哥本哈根

我怎么能最终获得马尔默哥本哈根?

由于Android不会让我写:

name"-"dest 

回答

14

我眼中最好的方法是使用String类本身提供的concat()方法。

的使用率会,你的情况,如下图所示:

String myConcatedString = cursor.getString(numcol).concat('-'). 
     concat(cursor.getString(cursor.getColumnIndexOrThrow(db.KEY_DESTINATIE))); 
41

您需要使用字符串连接运算符+

String both = name + "-" + dest; 
+0

或使用String类方法Concat()。例如,name.concat(“ - ”)。concat(dest) http://download.oracle.com/javase/6/docs/api/java/lang/String.html – Jasonw 2011-06-05 16:47:24

+6

@Jasonw - 调用'concat'两次可能效率较低,因为与编译器翻译Jon所建议的内联表达式相比,它创建了一个额外的String对象。而且,Jon的解决方案更少打字。 :) – 2011-06-05 16:51:55

3

您可以使用连接运算符和替代声明两个变量只使用一个变量

String finalString = cursor.getString(numcol) + cursor.getString(cursor.getColumnIndexOrThrow(db.KEY_DESTINATIE)); 
+0

Btw“+”是连接运算符,并且如果您的其中一个值不是String,则需要将其转换为String。 – kaibuki 2011-06-05 16:46:17

+0

如果* both *值为非字符串,则只需将其转换为字符串即可。 – 2011-06-05 16:53:42