gpt4 book ai didi

java - 在 Java 中连续计算字符

转载 作者:行者123 更新时间:2023-12-04 22:47:44 25 4
gpt4 key购买 nike

我正在尝试编写一个方法,该方法返回 char c 首次在 s 中连续出现的次数,即使它是该字符的一次出现。甚至空格也打破了连续计数。所以字符串“我不擅长编程”。如果字符 c 是“a”,则应该只返回 1。

下面的代码编译但不打印正确的答案。在处理这个问题时,只是为了展示我的一般逻辑。

public class WordCount
{
public int countRun( String s, char c )
{
int counter = 0;
for( int i = 0; i < s.length(); i++)
/*There should be other conditions here that checks for first
appearance consecutively. I've tried my fair share, but no
luck on getting correct results.*/
{
if( s.charAt(i) == c )
{
counter += 1;
}
}
return counter;
}

public static void main( String args[] )
{
WordCount x = new WordCount();
System.out.println( x.countRun( "Add dog", 'd' ) ); //should return 2
System.out.println( x.countRun( "Add dog", 'D' ) ); //should return 0
System.out.println( x.countRun( "Hope you're happy", 'p' )); //should return 1
System.out.println( x.countRun( "CCCCCcccC", 'C' )); //should return 5
}
}

我只需要一些指针(逻辑或代码)。也许有一种我以前从未见过的字符串方法可以使我的程序更简单。我在编程和 Java 方面的知识非常有限。

编辑:对于任何想知道这是否是家庭作业的一部分或诸如此类的人,这是一个非常古老的期中考试的问题。我弄错了,但出于某种原因,但当时从不费心去问正确的答案。我今天看了看,想看看我是否知道答案。好像我没有

最佳答案

您可以在一行中完成:

int result = s.replaceFirst(".*?(" + c + "+).*", "$1").length();

这段代码使用正则表达式来提取 s 的部分这是 c 的第一次连续出现,然后得到它的长度。

这也适用于没有出现的情况,产生零。

live demo .

关于java - 在 Java 中连续计算字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16849813/

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