cari

Rumah  >  Soal Jawab  >  teks badan

JAVA按行读取文件如何判断两行内容是否相同

如题。。比如
aaa
bbb
ccc
aaa
eee
fff
eee

按行读取这个文件,如何判断两行是否相同?因为这里我需要将相同内容的所在行号记录下来,
比如上述就应该处理成这种形式:
(map类型<string,List<Integer>>)

       aaa:(1,4)
      bbb: (2)
      ccc: (3)
      eee: (5,7)
      fff: (6)
PHPzPHPz2889 hari yang lalu478

membalas semua(3)saya akan balas

  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:44:38

    HashMap<String,List<Integer>> hm = new HashMap<String,List<Integer>>();
            
            for (String s : text){
                if (hm.containsKey(s)){
                    List<Integer> list = hm.get(s);
                    list.add(index);
                    hm.put(s, list);
                }
                else {
                    List<Integer> list = new ArrayList<Integer>();
                    list.add(index);
                    hm.put(s, list);
                }
            }

    balas
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:44:38

    Tidak ada yang salah dengan reka bentuk ini Map Jika kecekapan tidak dipertimbangkan, anda boleh membacanya baris demi baris dan kemudian melakukan operasi yang sepadan.
    Bukankah perlu menggunakan equals untuk menilai sama ada dua baris adalah sama?

    Tambahan:
    Kod tidak lengkap:

    reader = new BufferedReader(new FileReader(file));
    int line = 1;
    String lineStr = null; //每一行文本
    while ((lineStr= reader.readLine()) != null) {
        //TODO 做相应的操作,楼下已提供
        line++; // 行号
    }

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:44:38

    Menurut penyoal, hanya gunakan keyExist untuk menentukan sama ada ia wujud Saya tidak tahu keperluan lain yang diperlukan oleh penyoal;

    balas
    0
  • Batalbalas