Sao e không thể nhập file vào mảng

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

class Word{

static String word_target;
static String word_explain;

Word(){}
Word(String target, String explain){
word_target = target;
word_explain = explain;
}

String getWord_target(){
return this.word_target;
}
void setWord_target(String str){
this.word_target = str;
}
String getWord_explain(){
return this.word_explain;
}
void setWord_explain(String str){
this.word_explain = str;
}
}

public class File {
public static void main(String[] args) {
ArrayList<Word> arrayWord = new ArrayList<>();
try{
BufferedReader br = new BufferedReader(new FileReader(“E:\dictionaries.txt”));
String content = br.readLine();
while (content != null) {
String[] word = content.split("\t");
content = br.readLine();
Word w = new Word(word[0], word[1]);
arrayWord.add(w);

/System.out.println(w.getWord_target() + “+” + w.getWord_explain());
System.out.println(arrayWord.get(0).getWord_target() + “-”);
/

}
int no = 1;
System.out.println(“No” + ‘\t’ + “|English” + “\t\t” + “|Vietnamese”);

for (Word w : arrayWord){
System.out.println(no + “\t” + “|” + w.getWord_target() + “\t\t\t” + “|” + w.getWord_explain());
no++;
}
}
catch (IOException e){
e.printStackTrace();
}
}
}

Trên là code của em.
Trong file kia của e chứa:

Hello Xin chao
Dog Cho

Nhưng tại sao khi e in ra mảng mà chỉ toàn DogCho thôi v?
E đang bế tắc :(((

Capture

Mình chạy và thấy vẫn in bình thường !

Mình chỉ phải sửa lại lỗi này thôi :wink: Bạn xem lại cách in nhé, muốn in cộng chuỗi với nhau thì phải sử dụng + nữa nhé. Bạn sửa lại như thế này:

System.out.println(w.getWord_target()  + " " +  w.getWord_explain());
System.out.println(arrayWord.get(0).getWord_target() +  "-");

Nhân tiện mình cũng muốn chỉ bạn một số chỗ:

  1. Nên chia rõ 2 Class WordFile ra hai file khác nhau, nó sẽ khiến code mạch lạc hơn!
  2. Mình đoán là bạn đang sử dụng Text Editor để code, mình khuyên bạn nên chọn 1 IDE để code. Lỗi bạn vừa gặp là lỗi hơi “ngớ ngẩn”, nếu bạn mới học thì nên dùng IDE vì nó sẽ phát hiện ra mấy lỗi kiểu đó giúp bạn luôn.
1 Like

Anh ơi. chỗ kia e get(0) mà tại sao n vẫn in ra Dog vậy anh? Đáng lẽ vẫn là Hello chứ ạ.

Ai chỉ giúp e sai ở đâu với :frowning:

Cái này giải thích hơi khó hiểu chút. Hiểu đơn giản thì khi bạn để biến có thêm thuộc tính static thì nó sẽ bị vậy, nên bạn bỏ static đi là được.

3 Likes

à. static là nó giống kiểu tham chiếu hả anh?
Thanks anh. hay quá. :))))))))))))))))))))))))))

1 Like

biến static là biến tĩnh được khởi tạo 1 lần duy nhất và có thế gọi qua class

Và tất cả các instance đều dùng chung 1 biến static. Tóm lại phải bỏ static trong code trên vì bất hợp lí.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?