これは問題ではないはずですから、ファイルからクラスのリストにデータをロードしてから、ユーザー入力から文字列をチェックします。比較するときに文字列が等しい場合、ファイルから抽出されたいくつかの変数を出力する必要があります。Javaが正しく2つの同等の文字列を比較しない
public static Double[] buscarLocacion(String estado,String municipio){
Double[] coord = { 0.0, 0.0 };
for(Ubicacion i: ubicacion) {
System.out.println("check: "+estado +" getEstado:"+ i.getEstado() + " ==: " +i.getEstado().equals(estado));
if(i.getEstado().equals(estado)) {
if(i.getMunicipio().equals(municipio)) {
coord[0] = i.getLat();
coord[1] = i.getLon();
return coord
//etc..
メイン関数で別のクラスを作成しました。私は別のものにこのクラスをインポートするときの比較を行うとき
found: hidalgo - tula de allende lat:20.0535516 lon: -99.3395636
しかし、私は常にnullを取得:これは予想通り、文字列が等しいこのプログラムのプリントが動作します。私が比較しているものを印刷してプログラムを設立した場合の比較では、このような真か偽:
System.out.println("check: "+estado +" getEstado:"+ i.getEstado() + " equals?=: " +i.getEstado().equals(estado));
と、このコードを印刷この:
check: yucatan file:veracruz de ignacio de la llave ==: false
check: yucatan file:yucatan ==: false //<<<- how is this possible??
check: yucatan file:oaxaca ==: false
に任意のアイデアをなぜこれが起こっていますか?私は問題を見つけることができません。私はここで間違って何をしていますか?
出力は、投稿したコードのものではありません。出力などに "check:"はありません。 –
これはそのコードの出力ではありません。実際のコードと実際の出力を表示してください。 – Biffen
とUbicacionも掲載しています。 getEstado() –