2011-10-19 26 views
6

Tôi đang cố gắng kiểm tra xem có khoảng trống, dòng mới hay tab ở vị trí ký tự hiện tại hay không. Không gian làm việc nhưng các tab và dòng mới thì không. Đi con số, tôi đang sử dụng thoát cho những người, và chỉ là một không gian thường xuyên cho một không gian ... Cách chính xác để tìm thấy những tại một địa điểm là gì?Tìm Spaces, Newlines và Tabs với charAt()

if(String.valueOf(txt.charAt(strt)).equals(" ") || 
        txt.charAt(strt) == '\r' || 
        txt.charAt(strt) == '\n' || 
        txt.charAt(strt) == '\t') { 
    //do stuff 
        } 
+0

'txt' là gì? và nếu đó là một 'String' ... tại sao bạn sử dụng' String.valueOf() '? –

+0

Brian: Tôi nghi ngờ vì không có nó bằng cách phàn nàn về các loại không tương thích (và '''' khó gõ hơn?) – Amadan

+0

txt là Editable – bwoogie

Trả lời

8

này làm việc cho tôi:

char c = txt.charAt(strt); 
    if (c == ' ' || c == '\t' || c == '\n' || c == '\r') 
    System.out.println("Found one at " + strt); 

Yours làm việc quá, mặc dù đó là một chút khó khăn hơn để làm theo. Tại sao nó không làm việc cho bạn tôi không biết - có thể là chuỗi được hình thành tồi tệ? Bạn có chắc bạn thực sự có các tab và nội dung trong đó không?

+0

Thay đổi phương pháp so sánh này để tiết kiệm chi phí. – bwoogie

1

Nó sẽ hoạt động tốt, kiểm tra chuỗi đầu vào của bạn. Ngoài ra, không gian có thể được kiểm tra bằng cách so sánh một ký tự khoảng trống. Tạo một đối tượng String mới chỉ để so sánh là tốn kém.

+0

... như là trích xuất mỗi char bốn lần. – Amadan

0

Nhìn vào tài liệu cho Editable trong Android, nó trả về một char. Do đó ...

if (txt.charAt(strt) == ' ' || 
    txt.charAt(strt) == '\r' || 
    txt.charAt(strt) == '\n' || 
    txt.charAt(strt) == '\t') 
{ 
    //do stuff 
} 

Sẽ tạo ra kết quả mong đợi.

Các vấn đề liên quan