Как убрать лишние символы со строки?

465
12 марта 2017, 05:06

Есть строка: String a = "[49,54545. 45,434324]";. Надо убрать из неё символы [ и ].

Наткнулся на метод replaceAll(), который, вроде, подходит. Попробовал удалить — смог удалить последний символ, но при попытке удаления первого символа — ошибка. Какие еще способы есть?

  • System.out.println(str.replaceFirst("[", "")); не сработал.
  • System.out.println(str.replaceFirst("]", "")); сработал, смог убрать последний элемент.
Answer 1

Использовать replaceAll() нужно так:

public static void main (String[] args) {
    String text = "[49,54545. 45,434324]";
    String nexText = text.replaceAll("[\\[\\]]", "");
    System.out.println(nexText);
}

Можно использовать регулярные выражения. Полученная строка будет содержать все символы старой, кроме "[" и "]".

public static void main (String[] args) {
    String text = "[49,54545. 45,434324]";
    Pattern p = Pattern.compile("[^\\[\\]]");
    Matcher m = p.matcher(text);
    StringBuilder builder = new StringBuilder();
    while(m.find()) {
        builder.append(text.substring(m.start(), m.end()));
    }
    String newText = builder.toString();
    System.out.println(newText);
}

Ещё можно взять срез строки без первого и последнего символов.

public static void main (String[] args) {
    String text = "[49,54545. 45,434324]";
    String newText = text.substring(1, text.length() - 1);
    System.out.println(newText);
}
Answer 2

Для удаления скобок можно просто использовать функцию replace:

public static void main (String[] args) {
    String text = "[49,54545. 45,434324]";
    text = text.replace("[", "").replace("]", "");
    System.out.println(text);
}
Answer 3

Можно сделать ещё короче через цикл for.

public static void main(String args[]) {
    String text = "[49,54545. 45,434324]";
    String newStr = "";
    for(int i = 0; i < text.length() - 1; i++) {
        newStr += text.charAt(i) != '[' && text.charAt(i) != ']' ? text.charAt(i) : "";
    }
}
READ ALSO
Read integers from file and find maximum number , and all indexes with this maximum number

Read integers from file and find maximum number , and all indexes with this maximum number

Необходимо прочитать все целые числа (integer) из файла и найти максимальное число, так же необходимо найти все индексы этого числа

336
Не могу сделать hover

Не могу сделать hover

Нужно сделать такой hover:

279