gpt4 book ai didi

java - 将正则表达式与数组进行匹配

转载 作者:行者123 更新时间:2023-12-02 19:29:08 25 4
gpt4 key购买 nike

我们都知道如何使用正则表达式来查找字符串中的内容。然而,正则表达式至少在数学上不仅仅限于实际的 String 和 char[] ;可以使用正则表达式来匹配 int[] 中的子序列。但是,我似乎找不到任何有关将正则表达式与非字符字符串一起使用的信息。还有人知道这样的事情吗?

这主要是受到 CodingBat 等网站上出现的大量“数组子序列”类型问题的启发。 。通常,我会将数组转换为字符串,以便我可以在其上使用正则表达式,例如我对 Java > Warmup-2 > noTriples 的解决方案是

return Arrays.toString(nums).split("(\\d*+), \\1, \\1(?!\\d)").length == 1; 

(我喜欢打高尔夫球)。

我考虑过做类似的事情

return new String(nums,0,nums.length).split("(.)\\1\\1").length == 1;

(确实有效),但不能使用文字值(例如,编译器将拒绝任何包含 \u0000-\u001F 的程序,除了几个),此外还有其他问题。

有人知道直接对整数数组进行模式匹配的方法吗?(使用某种正则表达式,甚至使用更受限制的语言?)

最佳答案

Matcher 类将采用 CharSequence 作为输入。如果您的整数的值全部为两个字节或更少,那么您可以将 int 数组包装在 CharSequence 中。只需屏蔽 charAt() 方法中的高位即可。

否则,您将不得不深入研究 Pattern 和 Matcher 的源代码。这不会是一项微不足道的任务。

关于java - 将正则表达式与数组进行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21173145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com