Tôi đang cố gắng tách một String
. ví dụ đơn giản làm việc:Grails: Tách một chuỗi có chứa một đường ống
groovy:000> print "abc,def".split(",");
[abc, def]===> null
groovy:000>
Nhưng thay vì dấu phẩy, tôi cần phải chia nó trên đường ống, và tôi không nhận được kết quả mong muốn:
groovy:000> print "abc|def".split("|");
[, a, b, c, |, d, e, f]===> null
groovy:000>
Vì vậy, tất nhiên lựa chọn đầu tiên của tôi sẽ là để chuyển từ đường ống (|
) thành dấu phẩy (,
) làm dấu phân tách.
Nhưng giờ tôi bị hấp dẫn: Tại sao tính năng này không hoạt động? Thoát khỏi ống (\|
) dường như không giúp:
groovy:000> print "abc|def".split("\|");
ERROR org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed, groovysh_parse: 1: unexpected char: '\' @ line 1, column 24.
print "abcdef".split("\|");
^
1 error
|
at java_lang_Runnable$run.call (Unknown Source)
groovy:000>
Ông có thể cung cấp một ví dụ? Nó không giống như đoạn mã cuối cùng tôi đã cung cấp? – Tom
@Tom, đó là một vấn đề định dạng, anh ta có nghĩa là '\\ |'. Bạn cần phải thoát khỏi '\' để giải thích nó trong String, vì vậy nó có thể thoát khỏi '|' –
@Colin Cảm ơn bạn rất nhiều. Không bắt được sự cố định dạng đó. Lời xin lỗi của tôi. – Tom