gpt4 book ai didi

java - 获取精确子串的数量

转载 作者:行者123 更新时间:2023-12-01 07:06:04 24 4
gpt4 key购买 nike

我想从字符串中获取子字符串的数量。

输入是 Excel 公式,例如 IF(....IF(...))+IF(...)+SUM(..) 作为字符串。我想要计算所有 IF( 子字符串。重要的是 SUMIF(...)COUNTIF(...) 不会被计算在内.

我想检查一下“IF”之前没有大写字母,但这(当然)导致索引超出范围。有人可以给我建议吗?

我的代码:

for(int i = input.indexOf("IF(",input.length()); 
i != -1;
i= input.indexOf("IF(,i- 1)){

if(!isCapitalLetter(tmpFormulaString, i-1)){
ifStatementCounter++;
}
}

最佳答案

尽管您可以像以前一样自己进行解析(这可能更适合您学习调试,这样您就知道问题是什么)

但是可以通过正则表达式轻松完成:

String s = "FOO()FOOL()SOMEFOO()FOO";

Pattern p = Pattern.compile("\\bFOO\\b");
Matcher m = p.matcher(s);

int count = 0;
while (m.find()) {
count++;
}

// count= 2

这里的主要技巧是正则表达式中的\b\b 表示字边界。简而言之,如果\b位置有字母数字字符,则不会匹配。

http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html

关于java - 获取精确子串的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23733549/

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