Есть строка: String a = "[49,54545. 45,434324]";. Надо убрать из неё символы [ и ].
Наткнулся на метод replaceAll(), который, вроде, подходит. Попробовал удалить — смог удалить последний символ, но при попытке удаления первого символа — ошибка. Какие еще способы есть?
System.out.println(str.replaceFirst("[", "")); не сработал.System.out.println(str.replaceFirst("]", "")); сработал, смог убрать последний элемент.Использовать 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);
}
Для удаления скобок можно просто использовать функцию replace:
public static void main (String[] args) {
String text = "[49,54545. 45,434324]";
text = text.replace("[", "").replace("]", "");
System.out.println(text);
}
Можно сделать ещё короче через цикл 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) : "";
}
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей