2ワードを受け入れ、それらが互いにアナグラムであるかどうかを返すプログラムを作成する課題があります。現在、私は最初の文字をすべてループし、2番目の単語の文字と一致するかどうかを確認しようとしています。次に、カウンタの整数を、いずれかの単語の長さの合計と比較します。これは、アナグラムの場合は等しいはずです。Javaの文字列クラスのみを使用してアナグラムを確認してください
単語がアナグラムの場合、現在カウントアップの無限ループが発生していますが、プログラムで終了する単語の文字数がカウントされない場合はエラーになります。
「文字列クラスで使用できるメソッドのみを使用してください。他のJavaライブラリユーティリティを使用しないでください。」という言い方をすると、単語を配列に入れて配列を使用できません。あなたのforループの第二レベルで
import java.util.Scanner;
public class anagram {
public static void main (String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter two strings");
String s1 = scanner.next();
String s2 = scanner.next();
int counter = 0;
int number1 = 0;
int number2 = 0;
if(s1.length() != s2.length()) {
System.out.println("The strings are not anagrams");
} else {
for(int i = 0; i < s1.length() ; i++) {
for(int j = 0; j < s1.length() ; i++) {
// number1 = i;
// number2 = j;
if(i == s1.length()){
number1 = i - 1;
}
if(j == s2.length()){
number2 = j - 1;
}
if(s1.charAt(number1) == s2.charAt(number2)) {
counter ++ ;
System.out.println(counter);
}
}
}
System.out.println(counter);
}
System.out.println(s1 + " " + s2 + " " + counter);
}
}
a-z
の発生を保存する26の要素を持つことになります。あなたのjループでは、私は+ +を持っている必要があります+ + @ – Steampunkery@T Jonesあなたは配列を使用することができますか? – user3437460
各文字のASCII値を取得できますか?それで、値を追加して等価性をチェックすることができるからです – Steampunkery