Java 如何在拆分后向同一字符串添加值

Java 如何在拆分后向同一字符串添加值,java,Java,我正在从蓝牙设备获取值,值之间用冒号分隔。我想获取第一个值并将其添加到同一字符串中: 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);

我正在从蓝牙设备获取值,值之间用冒号分隔。我想获取第一个值并将其添加到同一字符串中:

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");
    }
}
String类中没有add()方法。可以使用+运算符在Java中执行字符串连接

String s = "abc:def:ghi";
s = s + s.split(":")[0]; // or s += s.split(":")[0]
System.out.println(s);
上面的代码片段将打印
abc:def:ghiabc
根据需要添加空检查和索引边界检查

请在

编辑(根据OP对问题的评论)

如果您希望对输入字符串对象“raw”进行更改,并希望它反映在调用方方法中,那么这是不可能的,因为字符串在Java中是不可变的。实现这一点的正确方法是从方法返回结果,并将其分配给调用方方法中的字符串

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。更多详细信息。

如果(humid1!=null)无效,则此检查可能重复。谢谢!这不是重复的。我在问一个如何将第一个拆分的值插入到同一个字符串中。您想“组合”两个字符串,但在
raw.add(humid1)
中严重失败,重复的问题告诉您如何正确执行。如何获得子字符串不再重要,因为您已经解决了该部分。您应该包括示例输入和输出,包括当前(不正确)和期望(正确)输出,以使您的问题更清楚。不,这不是我的意思。如果代码如前所述,则字符串s=“abc:def:ghi”;s=s+s.split(“:”[0];//或s+=s.split(“:”[0]系统输出打印项次;那么打印的答案应该是abc,在这种情况下,这不是答案。谢谢请找到我的最新答案,并让我知道它是否对你有帮助。是的,它有一定的意义。谢谢你的回答。@nIoT我想你这边最好的行动就是投票选出有用的答案,接受解决你问题的答案。