2012-02-16 23 views
9

Làm thế nào tôi có thể loại bỏ các toàn bộ từon (không phải là chuỗion trong Confirmed) từ chuỗi sau đây?Di chuyển toàn bộ từ chỉ với Java

X-JP409 Confirmed on 13/2/12 
+1

Nếu nó luôn là định dạng đó, chỉ cần thay thế '" trên "' bằng '" "'? – Amber

Trả lời

3
"X-JP409 Confirmed on 13/2/12".replace(" on ", " "); 

String replace documentation

+0

Đối số thứ hai của thay thế() phải là "", không chỉ "", bởi vì nó sẽ làm cho hai từ "Xác nhận" và "13/2/12" thành một từ. –

+0

@ChandraSekhar Điểm tốt! – adarshr

+0

Câu trả lời này về mặt kỹ thuật trả lời câu hỏi nhưng chỉ hoạt động khi từ mục tiêu ở giữa câu. Các câu trả lời dưới đây (sử dụng replaceAll với RegEx) là tốt hơn vì cả hai đều trả lời câu hỏi và theo cách phổ biến hơn/giáo dục như thế nào để nói chung giải quyết các thách thức thay thế từ. –

0

gì về:

String str = "X-JP409 Confirmed on 13/2/12"; 
str.replaceAll(" on ", " "); 

Kết quả là những gì bạn đang tìm kiếm:

X-JP409 Confirmed 13/2/12 
6

Có dấu hiệu đặc biệt của từ trong regex: \b. Vì vậy, cách tốt hơn là myString.replaceAll("\\bon\\b", "");

Điều này hoạt động khi từ 'bật' ở đầu, cuối và ở giữa văn bản nhưng chỉ khi đó là một từ riêng biệt. Ví dụ: nó sẽ không xóa "on" khỏi từ "one".

+1

Không hoạt động, có phải 'replace()' hay 'replaceAll()'? –

+0

+1 cho việc sử dụng xác nhận chính xác cho nhiệm vụ này, tôi sẽ để lại khoảng trắng thừa trong chuỗi, nhưng để xử lý đúng một số trường hợp này sẽ là cần thiết. – stema

+0

@ 101010 [Tài liệu chuỗi] (http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html) – stema

5

Nếu bạn muốn thay thế tất cả "bật" không có trong một từ, bạn có thể thử kết hợp với ranh giới từ từ \ b. Hy vọng nó giúp.

String abc = "on X-JP409 Confirmed on 13/2/12 on"; 
    abc = abc.replaceAll("\\bon\\b", ""); 
    System.out.println(abc); 

hoặc

String abc = "on X-JP409 Confirmed on 13/2/12 on"; 
    abc = Pattern.compile("\\bon\\b").matcher(abc).replaceAll(""); 

replaceAll thực sự là cách gọi các Pattern api.

+0

Cảm ơn, bạn đã cứu ngày của tôi! – GingerHead

+0

Bạn là người tuyệt vời nhất từ ​​trước tới giờ! – GingerHead

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