Paiz〇で問題文を解こうとしていたところ、
配列に対してindexOf()を使用としたら
can not find symbol シンボルが無いよ~って言われた。
コードはこんな感じ。関係ないところは端折る。
import util.*;
String[] array = {"a","b","c"};
String str = "a";
int index = array.indexOf(str);
}
}
ちゃんとutil.*もimportしてるし、スペルも間違ってないのに出来ない。
色々検証してたら配列じゃなくてlistとか基本型だったら普通に動く。
配列名だけで指定した時だけ動かない。
でも他のサイトにも配列の要素のインデックスを求めるのはindexOf使えと書いてるし…。
んで四苦八苦して参考書引っ張り出してきたら、
配列の特定の要素を調べるときはArrays.binarySearchを使えば良いよと書いてたので、
実際に使ってみたらちゃんと動いた。コードはこれ↓。
int index = array.Arrays.binarySearch(array, str);
ただ配列の要素に重複がある場合、どの要素が返されるかはわからないとのことなので
やっぱりindexOfも使いたい。
一応拡張forを使って文字列に全部結合したら使えるが、二度手間だった。