2011-11-30 41 views
8

Tôi gặp sự cố nhỏ với thao tác trừ trong java. Khi người dùng nhấn phím 'backspace', tôi muốn char người dùng đã gõ, được lấy đi từ từ tồn tại. ví dụ từ = myname và sau khi một phím lùi từ = mynamThao tác trừ trên chuỗi

Đây là kinda những gì tôi có:

String sentence = ""; 
char c = evt.getKeyChar(); 
if(c == '\b') { 
    sentence = sentence - c; 
} else { 
    sentence = sentence + c; 
} 

hoạt động Các add hoạt động. Vì vậy, nếu tôi thêm một chữ cái, nó sẽ thêm vào từ hiện tại. Tuy nhiên, dấu trừ không hoạt động. Am i thiếu cái gì ở đây? Hoặc làm nó hoàn toàn sai?

Trả lời

8

Bạn đang làm điều đó hoàn toàn sai. Bạn cần phải substring từ 0 đến độ dài của chuỗi, trừ một. Vì vậy:

sentence = sentence.substring(0, sentence.length() - 1); 
+0

tuyệt vời có ý nghĩa. Tôi đã thử sử dụng '-' vì + đã hoạt động. Tôi không thể tìm thấy bất kỳ tài liệu tham khảo nào trên web (có thể có điều gì đó ngoài kia, chỉ là tôi không thấy) – user1005253

0

Để thuận tiện, Java hỗ trợ nối chuỗi ký hiệu '+'. Đây là toán tử nhị phân có kiểu lớp là toán hạng. Xem String concatenation operator trong Đặc tả Ngôn ngữ Java.

Java không hỗ trợ quá tải toán tử '-' giữa Chuỗi và char.

Thay vào đó, bạn có thể xóa ký tự khỏi chuỗi bằng cách thêm các phần tử trước và sau.

0
sentance = sentance.substring(0, sentance.length() - 1); 

Không có toán tử tương ứng nào cho phép bạn xóa ký tự khỏi chuỗi.

0

Bạn nên điều tra lớp StringBuilder, ví dụ:

StringBuilder sentence = new StringBuilder(); 

Sau đó, bạn có thể làm điều gì đó như:

sentence.append(a); 

cho một nhân vật mới hoặc

sentence.deleteCharAt(sentence.length() - 1); 

Sau đó, khi bạn thực sự muốn sử dụng chuỗi, sử dụng:

String s = sentence.toString();