前提・実現したいこと
Java初心者です。文字列を判定しつつカウント、文字の表記も合わせる為のヒントが欲しいです。
テキストファイルtext1.txtを呼び、ArrayListに格納しています。
テキストファイルの文字コードUTF-8に合わせて、本テーマにしている文字列の位置を表示させる。
必要であろう文字列の判定を行いたい。その際、何番目の文字列として特定の文字列があるかを出力する。
下記に理想とする答えの形を掲示する。
<理想の結果 / UTF-8 形式 >
あ
かき
さしす
たちつて
なにぬねの
なにぬねの
たちつて
さしす
かき
あ
3番目
発生している問題
他の出力した文字列と同じような文字コードによる表記にならない事。
カウントさせるかして特定文字列が何行目にあるか探りたいが構文が思いつかない。
該当のソースコード
判定するためのコードだけ記述しておりません。
Main
1import java.io.BufferedReader; 2import java.io.FileInputStream; 3import java.io.IOException; 4import java.io.InputStreamReader; 5import java.util.ArrayList; 6 7public class Main { 8 9 public static void main(String[] args) { 10 11 String data; 12 13 try { 14 15 ArrayList <String> list = new ArrayList<String>(); 16 17 FileInputStream fi = new FileInputStream(args[0]); 18 19 20 InputStreamReader in = new InputStreamReader(fi,"UTF-8"); 21 22 BufferedReader fw = new BufferedReader(in); 23 24 while((data = fw.readLine()) != null) { 25 26 list.add(data); 27 28 } 29 30 for(String m:list) { 31 32 System.out.print(m+"\n"); 33 34 } 35 for(int i=list.size()-1;i>=0;i--) { 36 37 System.out.print(list.get(i)+"\n"); 38 39 } 40 41 fw.close(); 42 43 } catch(IOException e) { 44 45 System.out.print("IOEエラー"); 46 47 }finally { 48 49 } 50 51 } 52 53}
text1
1あ 2かき 3さしす 4たちつて 5なにぬねの
試したこと
int c=0; if(!(list.equals("さしす"))){ c++; }
List格納時に否定から入るIF文を使用し、特定文字列以外の時にカウントさせて幾つ目の文字列か見つける。
しかし、特定文字列でカウントを辞めさせる構文が思いつかず結局5回カウントさせてしまう。
int n = 0; n = list.indexOf("さしす");
上記のコードを使用する方法も考えたが、何文字先に特定文字列があるかでなく、幾つ目の文字列にあるか探りたいので扱いが分からずにいる。
補足情報(FW/ツールのバージョンなど)
Eclipseを使用
回答2件
あなたの回答
tips
プレビュー