Как добавить значения в одну строку после разбиения - PullRequest
0 голосов
/ 03 июля 2019

Я получаю значение от устройства Bluetooth, значения разделены: двоеточием. Я хочу получить первое значение и добавить его к той же строке:

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");
    }
}

1 Ответ

0 голосов
/ 03 июля 2019

В классе 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 Добавить нулевые проверки и проверки границ индекса в соответствии с вашими требованиями.

Пожалуйста, проверьте альтернативные способына Конкатенация строк |StackOverflow

РЕДАКТИРОВАТЬ ( Согласно комментарию ОП к вопросу )

Если вы хотите внести изменения во входной объект 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.Подробнее Неизменность строк в Java |StackOverflow .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...