如何将两个char数组相互比较,以查看输入的数组是否具有多个特定变量而不是另一个?

时间:2016-03-02 02:41:49

标签: java arrays char alphabet

好的,所以我正在编写一个程序,告诉用户他们放入命令行的单词是否是等值线图,我遇到了困难。

我究竟如何将用户输入的char数组与另一个进行比较,以查看它是否有多于一个的字母?

我有这个,我很困惑从哪里开始。

char[] alphabet = new char[]{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
char[] wordLetters = word.toCharArray(); 
boolean blnResult = Arrays.equals(alphabet,wordLetters);

我确信我对此采取了完全错误的方式,但我应该如何比较两者以获得结果呢?

2 个答案:

答案 0 :(得分:2)

如果我理解你的问题,我就会这样做:

String isogram = "salad";
boolean isIsogram = !isogram.matches( ".*(.).*\\1.*" );
System.out.println( isIsogram );

或效率低但是如果你必须使用数组:

String isogram = "salad";
boolean isIsogram = true;
for ( int i = 0; i < isogram.length(); i++ ) {
    for ( int j = 0; j < isogram.length(); j++ ) {
        if ( i != j && isogram.charAt( i ) == isogram.charAt( j ) && ( Character.isLetter( isogram.charAt( i ) ) ) ) {
            isIsogram = false;
        }
    }
}
System.out.println( isIsogram );

答案 1 :(得分:0)

基本上,等值线是没有重复字母的单词或短语。

代码形式的函数签名或程序输出期望有助于更好地回答。

但是,考虑到你正在处理一个返回true或false的函数: 设置是实现它的方法。 继续将字符放在Set或HashMap中,如果在插入集合时,字符已经存在于set中,则将响应返回为false,否则返回true。