好的,所以我正在编写一个程序,该程序将告诉用户他们在命令行中输入的单词是否为等距图,并且遇到了困难。
我如何准确地将它与用户输入的字符数组与另一个字符数组进行比较,以查看它是否有一个以上的字母?
我有这个,我很困惑从这里去哪里。
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);
我确定我完全以错误的方式这样做了,但是我应该如何比较两者以获得该结果呢?
最佳答案
如果我正确理解您的问题,这就是我的处理方式:
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 );