assetsフォルダのテキストファイルを読み込み、任意の部分だけを表示させたい
初心者ですが、はじめてここで質問させていただきます。
現在Android Studioを使い、言語はJavaでアプリ開発の練習を進めています。
作成中のアプリはassetsフォルダのなかに作成した、いくつかの国・都市名とそれぞれに割り当てられた4桁の番号が記されたテキストファイルを読み込み、アプリ画面にて4桁の番号を検索にかけることで、該当する国・都市名のみを表示させるというものです。
テキストファイルの読み込みや、検索番号を入力するところまではできているのですが、入力した番号とテキストファイル内の番号が一致していても一致していないことになるため悩んでいます。
助言をいただきたいですよろしくお願いします。
発生している問題・エラーメッセージ
2022-01-05 14:33:37.739 10566-10566/com.example.sampleMeibo I/System.out: 9999 2022-01-05 14:33:37.739 10566-10566/com.example.sampleMeibo I/System.out: 1064,America,ニューヨーク 2022-01-05 14:33:37.739 10566-10566/com.example.sampleMeibo I/System.out: 1099,China,上海 2022-01-05 14:33:37.739 10566-10566/com.example.sampleMeibo I/System.out: 0068,UK,ロンドン 2022-01-05 14:33:37.739 10566-10566/com.example.sampleMeibo I/System.out: 9999,Russia,モスクワ 2022-01-05 14:33:37.739 10566-10566/com.example.sampleMeibo I/System.out: 一致していません
該当のソースコード
package com.example.sampleMeibo; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); InputStream is = null; BufferedReader br = null; String text = ""; //TextView2の処理 try { try { // assetsフォルダ内のcord.txtを開く is = this.getAssets().open("test1/cord.txt"); br = new BufferedReader(new InputStreamReader(is)); //1行単位で読み込む String str; while ((str = br.readLine()) != null) text += (str + "\n"); } finally { if (is != null) is.close(); if (br != null) br.close(); } } catch (Exception e) { //エラー発生時に前のアクティビティに戻る finish(); } //textをTextView2に表示 TextView textView2 = findViewById(R.id.textView2); textView2.setText(text); //終了ボタンを押した際の処理 Button button2 = findViewById(R.id.button2); button2.setOnClickListener(view -> finishAndRemoveTask()); //検索ボタンを押した際の処理 Button button = findViewById(R.id.button); String finalText = text; button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //text1に保存されたコードをtextViewに表示 EditText editText = findViewById(R.id.editText); String text1 = editText.getText().toString(); TextView textView = findViewById(R.id.textView); TextView textView3 = findViewById(R.id.textView3); textView.setText(text1); System.out.println(text1); System.out.println(finalText); //コードと4桁の番号が一致したとき、該当する行を表示 if (text1 == finalText) { System.out.println("一致しました"); textView3.setText(finalText); } else { System.out.println("一致していません"); textView3.setText("一致していません"); } } }); } } //cord.txtの内容 1064,America,ニューヨーク 1099,China,上海 0068,UK,ロンドン 9999,Russia,モスクワ
試したこと
テキストファイルを読み込むのではなく、SQLiteのようなデータベースを利用したものも調べていくうちにたどり着いだのですが、まだ初心者ということもあり可能であればこのままのやり方で考えています。
しかしそもそも実現不可能なものであればほかのやり方を提示していただけると助かります。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー