繁体   English   中英

从字符串中获取特定字符之后的字符(java)

[英]getting character from string that is after specific chars (java)

我在从字符串中获取字符时遇到问题。 6xˆ3 + 5 + 10xˆ2 ,我把它作为字符串,想得到x^之后的数字。 如何在不使用 if 和 for 的情况下执行此操作? 有什么方法和正则表达式可以帮助我吗?

那么 xˆ 后面有两个数字,3 和 2

这将使用正向后视匹配这两个数字(如果您确实打算使用此字符: ^

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

如果您打算使用此字符 ^,则可以使用相同的表达式但转义插入符号。

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

请按以下步骤操作:

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 开始可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM