java - 对字符串中的字符进行计数的函数
问题描述
对于我的家庭作业,我需要计算String
. 如果彼此后面有超过三个相同的字符,则方法应该返回true
if not false
。
现在开发一个方法noMultiples ()
,它检查字符串中是否有三个(或更多)相等的字符noMultiples ()
现在泛化,要重复的字符数是参数化的。
我已经尝试将输入溢出String
到子字符串但收到String index out of Bounds
错误。我也尝试使用该charAt()
方法,但我现在有点卡住了。有没有办法解决这个问题?提前致谢
public static boolean noMultiples(int n, String s) {
for(int i=0;i<s.length();i++){
if(s.charAt(i)==s.charAt(i+1)&&s.charAt(i+1)==s.charAt(i+2)){
return true;
}
}
return false;
}
这应该是预期的输出:
public static void main(String[] args) {
boolean result = noMultiples("Hello World");
System.out.println(result); // => true
System.out.println(noMultiples("faaantastic")); // => false
System.out.println(noMultiples(2, "Hello World")); // => false
}
解决方案
您可以在方法中使用一些字段来存储字符重复的数量。
此外,重载 noMultiples
以仅接受字符串。
注意:由于如果找到多个连续字符则noMultiples
返回,因此最好命名此方法。这样做以后会更直观,以后可以修改或使用。true
containsMultiples
public class test
{
public static void main(String[] args)
{
System.out.println(containsMultiples("Hello World"));
System.out.println(containsMultiples("faaaantastic"));
System.out.println(containsMultiples(2, "Hello World"));
}
public static boolean containsMultiples(int n, String s) {
int len = s.length();
if(len == 0) return false;
char lastChar = s.charAt(0);
int multipliesFound = 1;
for(int i = 1; i < len; i++) {
if(s.charAt(i) == lastChar) {
multipliesFound++;
}
else {
multipliesFound = 1;
}
if(multipliesFound == n) {
return true;
}
lastChar = s.charAt(i);
}
return false;
}
public static boolean containsMultiples(String s) {
return containsMultiples(3, s);
}
}
返回:
false
true
true
根据您的Hello World
字符串示例,我假设您正在寻找一种仅查找连续等号字符的方法。
推荐阅读
- ios - 如何从更简单的 UISpringTimingParameter 初始化器派生 CASpringAnimation 属性?
- xamarin.forms - Xamarin Forms 使用效果覆盖 Android 开关属性
- node.js - 使用 Express 使用 SSL 自托管 Bitbucket
- python-3.x - 属性在 selenium Python 中引发 NoSuchElementException
- mapbox - 有没有办法根据移动和桌面查看来更改 Mapbox 地图中的图标大小?
- java - 如何在 JAVA 中按两个条件排序?
- ms-access - 当我希望它为只读时,MS Access 链接组合框正在更新源表
- java - 使用 javac -cp "commons-lang3-3.10.jar" 编译时,带有 jar 文件的线程“Thread-1”NoClassDefFoundError 出现异常
- javascript - JavaScript 扩展了 eval() 函数?
- reactjs - 出于某种原因,reactjs for loop 停止在 1 并且尝试在循环中使用设置状态时出现问题