私はいくつかのJavaエクササイズを行っていますが、このコードでは私は完全にgrokしていません。文字での配列要素へのアクセス
public static boolean permutation(String s, String t) {
if (s.length() != t.length()) {
return false;
}
int[] letters = new int[128];
char[] s_array = s.toCharArray();
for (char c : s_array) {
letters[c]++;
}
// omitted other code
}
letters
の内容を印刷すると、整数の配列が表示されます。文字列に応じて、配列には0
と1
のバリエーションが返されます。
Array
クラスがchar
をint
に変換している可能性があると私は考えました。 printステートメントを追加しましたが、d
の値が13であることがわかりましたが、配列の13番目の要素がまだ0
と表示されています。このコードは次のようになります。
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String word1 = "dog";
String word2 = "god";
permutation(word1, word2);
}
public static boolean permutation(String s, String t) {
if (s.length() != t.length()) {
return false;
}
int[] letters = new int[128];
char[] s_array = s.toCharArray();
for (char c : s_array) {
System.out.println(Character.getNumericValue(c));
letters[c]++;
}
System.out.println(Arrays.toString(letters));
return true;
}
}
出力:
13
24
16
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
にArray[char]
構文変換しない何という私の質問?