我有两个 char 数组:一个用某个单词填充。例如 char[] word = {'j', 'a', 'v', 'a'};
第二个是给定的大小,并填充从“a”到“z”的随机字符。
我需要计算一个单词在第二个数组中出现了多少次。例如,假设第二个数组是:< code>{'w ',' j ',' a ',' v ',' a'},给定的示例函数应该返回1,因为单词“java”在数组中只出现一次。
这是我的密码
private static int zad4() {
char[] word = {'j', 'a', 'v', 'a'};
char[] arr = new char[100];
// random characters from a to z
for (int i = 0; i < arr.length; i++) {
arr[i] = (char)('a' + Math.random() * ('z' - 'a' + 1));
}
int counter = 0;
int countWord = 0;
for (int i = 0; i < word.length; i++) {
for (int j = 0; j < arr.length; j++) {
if (word[i] == arr[j]) {
counter++;
if (counter == word.length) {
counter = 0;
countWord++;
}
}
}
}
return countWord;
}
当我将arr设置为与word相同时,它返回预期值,但当我将arr设置为< code>{'j ',' a ',' v ',' a ',' j ',' a ',' v ',' a ' };它返回3,但我期望是2
可以先迭代您的 arr,如果第一个字符匹配,则开始单词检查。
private static int zad4() {
char[] word = {'j', 'a', 'v', 'a'};
char[] arr = new char[100];
// random characters from a to z
for (int i = 0; i < arr.length; i++) {
arr[i] = (char)('a' + Math.random() * ('z' - 'a' + 1));
}
int countWord = 0;
for (int i = 0; i < arr.length; i++) {
if(arr[i] == word[0]) {
boolean matches = true;
for(int j = 0; j < word.length; j ++) {
matches = word[j] == arr[i + j];
if(!matches)
{
break;
}
}
if(matches) {
countWord ++;
i += word.length - 1;
}
}
}
return countWord;
}
首先,我将使用<code>word</code>和<code>arr</code>方法参数。在本地生成它们会使代码很难测试和调试。其次,当您成功到达单词末尾时,可以增加计数。类似于,
private static int zad4(char[] word, char[] arr) {
int countWord = 0;
for (int p = 0; p < arr.length; p++) {
for (int i = 0; i < word.length && p + i < arr.length; i++) {
if (word[i] != arr[p + i]) {
break;
} else if (i + 1 == word.length) {
countWord++;
}
}
}
return countWord;
}
我用它来测试
System.out.println(zad4("java".toCharArray(), "javajavajava".toCharArray()));
System.out.println(zad4("java".toCharArray(), "javajava".toCharArray()));
System.out.println(zad4("java".toCharArray(), "java".toCharArray()));
System.out.println(zad4("java".toCharArray(), "ja".toCharArray()));
获得(如预期的)
3
2
1
0
编辑:如何让js检查字符串是否包含数组的任何字符串,如var arrayVar=[“bing”,“google”];如果像“google是最好的吗?”这样的字符串,请检查它是否包含数组中的内容。这可能吗?
问题内容: 检查字符串是否仅包含以下字符的最佳和最简便的方法是什么? 我想要像这样的伪代码示例: 请和谢谢:) 问题答案:
如果两个英语单词只包含相同的字母,则它们是相似的。例如,食物和好东西并不相似,但狗和好东西是相似的。(如果A与B相似,则A中的所有字母都包含在B中,B中的所有字母都包含在A中。) 给定一个单词W和一个单词L列表,查找L中与W相似的所有单词。将字数打印到标准输出。 例子: 输入(标准输入): 输出(标准输出): 说明: L中与love相似的词是:velo vole love volvell love
下面是我要做的:我有一些,如果列表包含特定字符串,我想打印一条语句,否则抛出一个异常,但当我尝试以下代码时 它遍历列表,在处,它显然找到“apple”,并立即转到块并抛出异常。我也试过下面的,但这也不起作用。 有没有一个简单的方法来做我想做的事情?
问题内容: 我必须检测一个字符串是否包含任何特殊字符。我该如何检查?Swift支持正则表达式吗? 我尝试了上面的代码,但是只有当我输入第一个字符作为特殊字符时,它才匹配。 问题答案: 您的代码检查字符串中是否没有字符来自给定的集合。您要检查的是给定集合中是否 没有 任何 字符: __ 您还可以使用正则表达式实现此目的: 该模式匹配的字符 不在 AZ,az或0-9范围内。 Swift 2更新: Sw
问题内容: 在解析字符串之前,如何检查字符串是否为数字? java 字符串 数字 问题答案: 使用及更高版本:或。 使用Apache Commons Lang 3.4及以下版本:或。 你还可以使用返回true空字符串,并忽略字符串中的内部空格。另一种方法是使用根据Java基本检查数字是否可解析的方法。(链接的javadocs包含每种方法的详细示例。)