Làm cách nào để sử dụng phương thức useDelimiter()
của lớp Scanner
để sử dụng cả dấu phẩy (,) và ký tự dòng mới (\ n) làm dấu phân cách?Nhiều dấu phân cách trong lớp Máy quét của Java
Tôi đang phân tích cú pháp một số văn bản từ tệp csv.
Làm cách nào để sử dụng phương thức useDelimiter()
của lớp Scanner
để sử dụng cả dấu phẩy (,) và ký tự dòng mới (\ n) làm dấu phân cách?Nhiều dấu phân cách trong lớp Máy quét của Java
Tôi đang phân tích cú pháp một số văn bản từ tệp csv.
Làm thế nào về useDelimiter(",|\\n");
useDelimiter mất một mẫu biểu thức chính, vì vậy, nó sẽ là một cái gì đó giống như ",|\n"
Jigar hoàn toàn chính xác. Nhưng nếu nó không hoạt động, hãy thử ",|\\r"
vì hầu hết các tập tin văn bản có \ r \ n thay vì chỉ \ n
Sử dụng Scan ký tự phân cách cho các tập tin Excel - không bỏ sót điều RegEx. Trong trường hợp của tôi, tệp excel bị giới hạn bởi '|'. Tôi đã dành nhiều thời gian đáng kể để phân tích các hàng bằng cách sử dụng scanner.useDelimiter ("|") và lấy lại ký tự theo ký tự. Thay thế bằng scanner.useDelimiter ("\\ |") đã giải quyết được vấn đề của tôi!
Đầu tiên \ làm gì? – tomejuan
Nó thoát khỏi thứ hai \. Regex sử dụng \ n để có nghĩa là newline nhưng do đó, Java để bạn viết \\ n được dịch sang \ n cho regex. –
Tự hỏi tại sao tomejuan không trả lời. Có thể "thoát", "regex" hoặc giải thích về '\' thứ hai. – DSlomer64