Tôi phải thay thế \\
bằng \
bằng Java. Mã tôi đang sử dụng làTại sao tôi nhận được một StringIndexOutOfBoundsException khi tôi cố gắng thay thế `\` bằng ``?
System.out.println((MyConstants.LOCATION_PATH + File.separator + myObject.getStLocation()).replaceAll("\\\\", "\\"));
Nhưng tôi không biết tại sao nó đang ném StringIndexOutOfBoundsException
.
Nó nói String index out of range: 1
Điều gì có thể là lý do? Tôi đoán đó là vì đối số đầu tiên replaceAll
chấp nhận một mẫu. Điều gì có thể là giải pháp khả thi?
stacktrace
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.charAt(String.java:558)
at java.util.regex.Matcher.appendReplacement(Matcher.java:696)
at java.util.regex.Matcher.replaceAll(Matcher.java:806)
at java.lang.String.replaceAll(String.java:2000)
trả lời Tìm thấy
asalamon74 gửi mã tôi cần, nhưng tôi không biết tại sao ông đã xóa nó. Trong mọi trường hợp ở đây nó được.
Có một bug đã được lưu trong cơ sở dữ liệu lỗi của Java. (Cảm ơn tham chiếu này, asalamon.)
yourString.replaceAll("\\\\", "\\\\");
Thật ngạc nhiên, cả chuỗi tìm kiếm và chuỗi thay thế đều giống nhau :) nhưng vẫn thực hiện những gì tôi yêu cầu.
Ngoài ra, nó nên được File.separator isnt nó? – Tom
Kết quả của việc nối các trường khác nhau mà bạn có là gì? – LB40
@LB c: \\ myDoc \\ hell \ o.txt –