Мой ввод строки String Number = "546 + 90".Java String output
Я хочу дать вывод как это "546 + 90". Как я могу сделать это в java? Сейчас я пытаюсь:
Number.replaceAll("[0-9]"," ");
Но он, похоже, не работает. У кого-нибудь есть предложения?
Мой ввод строки String Number = "546 + 90".Java String output
Я хочу дать вывод как это "546 + 90". Как я могу сделать это в java? Сейчас я пытаюсь:
Number.replaceAll("[0-9]"," ");
Но он, похоже, не работает. У кого-нибудь есть предложения?
Во-первых, Number
является встроенным классом в пакете java.lang
, поэтому вы никогда не должны использовать это имя.
Во-вторых, переменные должны быть записаны в нижнем регистре, поэтому это должно быть number
.
В-третьих, строки неизменяемы, поэтому необходимо получить возвращаемое значение от replaceAll()
.
Если вы хотите эту строку: "String Number=546+90"
стать эта строка: "546 + 90"
то, что вам нужно раздеться, прежде чем что-нибудь =
и добавить пробелы вокруг +
.
Это может быть сделано с помощью цепочки replace
вызовов:
String number = "String Number=546+90";
number = number.replaceFirst(".*=", "")
.replaceAll("\\+", " + ");
System.out.println(number);
Если вы хотите, чтобы другие операторы тоже использовать символьный класс. Вы должны захватить символ, чтобы сохранить его в заменяющей строке, а вы должны поставить -
первым или последним (или убежать от него).
number = number.replaceFirst(".*=", "")
.replaceAll("([-+*/%])", " $1 ");
Он работает !!! Спасибо. вы объясните, почему вы используете $ 1? –
Таким образом, что любой символ оператора будет сохранен. См. ['Matcher.appendReplacement()'] (https://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#appendReplacement%28java.lang.StringBuffer,%20java. lang.String% 29) для полного описания. – Andreas
Строки неизменны, так что вам нужно, чтобы получить строку равнодействующую метода замены:
public static void main(String[] args) {
String number="546+90";
number = number.replaceAll("\\+" , " + ");
System.out.println(number);
}
нет + зарезервировано? может понадобиться побег –
да, он должен быть scaped ... спасибо за комментарий –
Добавление экранирующих символов будет решить вашу проблему
номер строки = «\»»+„546 + 90“ + "\" ";
Не капитализировать имена переменных – redFIVE
кажется там неустройство ли вход «Строка Number = 546 + 90» или просто «546 + 90» –
Я сделал mistake.sorry !!!. его «546 + 90». Я отредактировал его. –