/ / oddzielne wyrażenie matematyczne w java - java

osobne wyrażenie matematyczne w java - java

Czy ktoś mógłby mi pomóc w oddzieleniu tego matematycznego wyrażenia? 125*1*4*4+82*1*10+2*59+2+4 w Javie. Chcę, aby liczby stanowiły wyrażenie, a ja nie jestem pewien, jak go użyć split() metoda tutaj.

Odpowiedzi:

2 dla odpowiedzi № 1

Możesz użyć podziału z tym wyrażeniem regularnym [*+] :

String[] numbers = "125*1*4*4+82*1*10+2*59+2+4".split("[*+]");

Wyjścia

[125, 1, 4, 4, 82, 1, 10, 2, 59, 2, 4]

Jeśli wyrażenie matematyczne zawiera spacje, możesz je usunąć przed użyciem i użyć podziału, aby można było użyć:

String[] numbers = "125*1*4*4+82*1*10+2*59+2+4".replaceAll("\s+", "").split("[*+]");
//---------------------------------------------^----------------------^

Zauważ, że możesz dodać kolejne operatory arytmetyczne, takie jak [*+-/]


Inne rozwiązanie z eparvan:

Jeśli nie masz pewności, co może zawierać wyrażenie, możesz użyć:

String[] numbers = "125*1*4*4+82*1*10+2*59+2+4".replaceAll("\s+", "").split("[^0-9]");
//----------------------------------------------------------------------------^----^

Edytować

Co jeśli chcę uzyskać "+" i "*"? Wkład: 125*1*4*4+82*1*10+2*59+2+4 Wydajność: ***+**+*++

W tym przypadku możesz podzielić z d+ lubię to :

String[] numbers = "125*1*4*4+82*1*10+2*59+2+4".replaceAll("\s+", "").split("\d+");

Ale będę preferować, aby przejść z wzorcem, to jest więcej praktyki, a następnie podzielić, na przykład można użyć:

String str = "125*1/4*4+82*1*10+2/59-2+4";
String regex = "[^\d]";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);

while (matcher.find()) {
System.out.println(matcher.group());
}