2013-04-29 90 views
8

Tôi đã tự hỏi điều gì sẽ là cách tốt nhất để xóa các ký tự trước dấu phẩy trong chuỗi, cũng như xóa dấu phẩy, chỉ để lại các ký tự sau dấu phẩy trong chuỗi , nếu chuỗi được biểu thị là 'thành phố, quốc gia'.Xóa ký tự trước dấu phẩy trong một chuỗi

Cảm ơn trước

+1

bạn đã thử bất cứ điều gì? – prasanth

+0

biểu thức chính quy là bạn của bạn – ryrich

Trả lời

24

Vì vậy, bạn muốn

thành phố, đất nước

để trở thành

nước

Một cách dễ dàng để làm điều này là thế này:

public static void main(String[] args) { 
    System.out.println("city,country".replaceAll(".*,", "")); 
} 

Đây là "tham lam" Mặc dù vậy, có nghĩa là nó sẽ thay đổi

thành phố, tiểu bang, quốc

vào

quốc gia

Trong trường hợp của bạn, bạn có thể muốn nó trở thành

nhà nước, nước

Tôi không thể nói từ câu hỏi của bạn.

+0

'. *,' Là gì? Cảm ơn! –

+2

Ở một bên nếu không muốn> thành phố, tiểu bang, quốc gia trở thành > tiểu bang, quốc gia thay đổi 'replaceAll' thành' replaceFirst' 'System.out.println (" city, state, country ".replaceFirst (" . *, "," ")); ' Nhưng có câu hỏi không rõ ràng – CodeMonkey

+0

@RuchirBaronia Khoảng thời gian là bất kỳ ký tự nào, dấu hoa thị biểu thị sự lặp lại (có nghĩa là bất kỳ số lượng dấu chấm/ký tự nào) và dấu phẩy là dấu phẩy thông thường ký tự đại diện. * chỉ đứng trước nó. –

0

Bạn có thể triển khai một loại chuỗi con tìm tất cả các chỉ mục của các ký tự trước dấu phẩy và sau đó tất cả những gì bạn cần làm là xóa chúng.

2

Nếu điều bạn quan tâm là trích xuất dữ liệu trong khi vẫn giữ nguyên chuỗi ban đầu, bạn nên sử dụng hàm tách (Chuỗi regex).

String foo = new String("city,country"); 
String[] data = foo.split(","); 

Mảng dữ liệu giờ sẽ chứa chuỗi "thành phố" và "quốc gia". Thông tin thêm có sẵn ở đây: http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split%28java.lang.String%29

+2

Chuỗi không thay đổi, vì vậy chuỗi gốc sẽ luôn bị giữ nguyên. –

+0

Đó là sự thật, không biết tôi đang nghĩ gì về việc viết ... – Orion

1

Điều này có thể được thực hiện với sự kết hợp của substringindexOf, sử dụng indexOf để xác định vị trí của (đầu tiên) dấu phẩy, và substring để trích xuất một phần của chuỗi tương ứng với vị trí đó .

String s = "city,country"; 
String s2 = s.substring(s.indexOf(",") + 1); 
3

việc kiểm tra này

String s="city,country"; 
System.out.println(s.substring(s.lastIndexOf(',')+1)); 

tôi thấy nó nhanh hơn .replaceAll(".*,", "")

+0

'. *,' ​​Là gì? THanks –

+0

nó là regex ". *" Cho bất kỳ số ký tự nào và dấu ',' được sử dụng làm dấu phân tách. –

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