我正在从蓝牙设备获得价值,价值之间用:冒号分隔。我想获取第一个值并将其添加到相同的字符串中:
public String process(String raw) {
if (raw != null) {
String[] str_array = raw.split(":");
String humid1 = str_array[0];
if (humid1 != null) {
return raw.add(humid1);
}
} else {
Log.w(TAG, "provided string was null");
}
}
答案 0 :(得分:0)
String类中没有add()方法。可以使用+运算符在Java中执行String串联。
String s = "abc:def:ghi";
s = s + s.split(":")[0]; // or s += s.split(":")[0]
System.out.println(s);
以上代码段将打印abc:def:ghiabc
根据您的要求添加空检查和索引范围检查。
请通过String Concatenation | StackOverflow
检查其他方法编辑(根据OP对问题的评论)
如果您要更改输入String对象“ raw”并希望其反映在调用者方法中,则不可能,因为String在Java中是不可变的。正确的方法是从您的方法返回结果,并将其分配给调用方方法中的String。
public void myMethod() {
String s = "abc:def:ghi";
s = process(s);
System.out.println(s);
}
public String process(String raw) {
if (raw != null) {
String[] str_array = raw.split(":");
String humid1 = str_array[0];
if (humid1 != null) {
return humid1;
}
}
return null; \\ or throw exception as per your choice.
}
以上代码段应打印abc
。更多详细信息String Immutability in Java | StackOverflow。