Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字母与单词匹配_Java_Arrays - Fatal编程技术网

Java 将字母与单词匹配

Java 将字母与单词匹配,java,arrays,Java,Arrays,我有下面的代码 import java.io.File; import java.util.ArrayList; import java.util.Scanner; public class Dummy { public static void main(String args[]) throws Exception { String word="hi"; String[] one={"a","b","c"}; String[] two

我有下面的代码

import java.io.File;
import java.util.ArrayList;
import java.util.Scanner;

public class Dummy {
    public static void main(String args[]) throws Exception {

        String word="hi";
        String[] one={"a","b","c"};
        String[] two={"d","e","f"};
        String[] three={"g","h","i"};
        String[] four={"j","k","l"};
        String[] five={"m","n","o"};
        String[] six={"p","q","r","s"};
        String[] seven={"t","u","v"};
        String[] eight={"w","x","y","z"};

        for(int i=0;i<word.length();i++)
        {
            for(int j=0;j<three.length;j++)
            {
                if(three[j].equals(word.charAt(i)))
                {
                    System.out.println("Matched");
                }
                else
                {
                    System.out.println("err");
                }

            }
        }
    }
}
导入java.io.File;
导入java.util.ArrayList;
导入java.util.Scanner;
公共类虚拟{
公共静态void main(字符串args[])引发异常{
字符串word=“hi”;
字符串[]one={“a”,“b”,“c”};
字符串[]two={“d”,“e”,“f”};
字符串[]三={“g”,“h”,“i”};
字符串[]四={“j”,“k”,“l”};
字符串[]五={“m”,“n”,“o”};
字符串[]六={“p”,“q”,“r”,“s”};
字符串[]七={“t”,“u”,“v”};
字符串[]八={“w”,“x”,“y”,“z”};

对于(int i=0;i您正在将单个字符串(从数组中)与字符进行比较。将
char
作为数组,而不是
string
(并使用
=
进行比较)。

您正在将单个字符串(从数组中)与字符进行比较。将
char
作为数组,而不是
string
。(并使用
=
比较它们。)

字符返回字符而不是字符串,因此它不能与字符串“相等”

字符返回字符而不是字符串,因此它不能与字符串“相等”

为什么不使用

for(intj=0;j为什么不使用

对于(int j=0;j请这样尝试:

StringBuffer result = new StringBuffer();
for (int i = 0; i < one.length; i++) {
    result.append(one[i]);
}
if (result.toString().equals(word)) {
    System.out.println("Matched");
} else {
    System.out.println("err");
}
StringBuffer结果=新建StringBuffer();
for(int i=0;i<1.length;i++){
结果。追加(一[i]);
}
if(result.toString().equals(word)){
系统输出打印项次(“匹配”);
}否则{
系统输出打印项次(“错误”);
}
试着这样做:

StringBuffer result = new StringBuffer();
for (int i = 0; i < one.length; i++) {
    result.append(one[i]);
}
if (result.toString().equals(word)) {
    System.out.println("Matched");
} else {
    System.out.println("err");
}
StringBuffer结果=新建StringBuffer();
for(int i=0;i<1.length;i++){
结果。追加(一[i]);
}
if(result.toString().equals(word)){
系统输出打印项次(“匹配”);
}否则{
系统输出打印项次(“错误”);
}

for循环中的元素三[j]是String,而word.charAt(i)是char..因此这些元素的equals()将始终为false

你要么把它改成

如果(三[j]=String.valueOf(word.charAt(i)))

这样它就可以比较字符串的实际上下文,或者将数组(一、二、三..)定义为char数组而不是string数组,这样您就可以简单地使用==了


请检查JavaDoc中字符串、对象和其他元素的equals(),可能还需要检查hashCode(),以完全理解equals()在Java中的含义。

for循环中的元素三[j]是字符串,而word.charAt(i)是字符。。因此,与这些元素对应的equals()将始终为false

你要么把它改成

如果(三[j]=String.valueOf(word.charAt(i)))

这样它就可以比较字符串的实际上下文,或者将数组(一、二、三..)定义为char数组而不是string数组,这样您就可以简单地使用==了


请检查JavaDoc中字符串、对象和其他内容的equals(),可能还需要检查hashCode(),以充分理解equals()在Java中的含义。

只是简单地说一下……有时查看实际代码会有所帮助。以下是从Java.lang.String中摘录的内容

请特别参阅粗体条件。如果instanceof失败,则返回false

public boolean equals(Object anObject) {
    if (this == anObject) {
        return true;
    }
    if (**anObject instanceof String**) {
        String anotherString = (String)anObject;
        int n = count;
        if (n == anotherString.count) {
        char v1[] = value;
        char v2[] = anotherString.value;
        int i = offset;
        int j = anotherString.offset;
        while (n-- != 0) {
            if (v1[i++] != v2[j++])
            return false;
        }
        return true;
        }
    }
    return false;
    }

只是简单地说一下……有时候看到实际的代码是很有帮助的

请特别参阅粗体条件。如果instanceof失败,则返回false

public boolean equals(Object anObject) {
    if (this == anObject) {
        return true;
    }
    if (**anObject instanceof String**) {
        String anotherString = (String)anObject;
        int n = count;
        if (n == anotherString.count) {
        char v1[] = value;
        char v2[] = anotherString.value;
        int i = offset;
        int j = anotherString.offset;
        while (n-- != 0) {
            if (v1[i++] != v2[j++])
            return false;
        }
        return true;
        }
    }
    return false;
    }

谢谢verymuch,这很有帮助,我想知道是否有办法得到数组名。比如匹配的数组是三个谢谢verymuch,这很有帮助,我想知道是否有办法得到数组名。比如匹配的数组是三个