получение символа из строки после указанного c символов (java) - PullRequest
1 голос
/ 17 марта 2020

У меня проблема с получением символа из строки. 6xˆ3 + 5 + 10xˆ2 , у меня есть строка и я хочу получить число после x ^ . Как я могу сделать это без использования if и for? Есть ли какой-нибудь метод и регулярное выражение, которые могут мне помочь?

Ответы [ 2 ]

0 голосов
/ 17 марта 2020

Сделайте это следующим образом:

import java.util.Arrays;
import java.util.regex.MatchResult;
import java.util.regex.Pattern;

public class Main {

    public static void main(String args[]) {
        String exp = "6x^3 + 5 + 10x^2";
        String[] nums = Pattern.compile("(?<=x\\^)[0-9]+").matcher(exp).results().map(MatchResult::group)
                .toArray(String[]::new);
        System.out.println(Arrays.toString(nums));
    }
}

Вывод:

[3, 2]

Примечание: Matcher :: results доступен только с Java 9.

0 голосов
/ 17 марта 2020

Ну, есть два числа, которые следуют за xˆ, 3 и 2

Это будет совпадать на обоих из этих чисел, используя положительный взгляд назад (Если вы действительно намеревались использовать этот символ: ˆ)

(?<=xˆ)-?\d+

Если вместо этого вы намеревались использовать этот символ ^, вы можете использовать то же выражение, но избежать символа вставки.

(?<=x\^)-?\d+

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