2012-02-27 39 views
26

Tôi có câu hỏi sau đây. Trong ứng dụng của tôi có một listview. Tôi nhận được itemname từ listview và chuyển nó vào webview như một chuỗi. Làm thế nào để bỏ qua trường hợp của chuỗi này và thay đổi dấu cách để gạch dưới?Làm cách nào để thay đổi dấu cách thành gạch dưới và làm cho chuỗi chữ không nhạy cảm?

Ví dụ: . Tôi chuyển nó đến hoạt động tiếp theo và muốn bỏ qua trường hợp và thay đổi không gian để gạch dưới (tôi muốn nhận được first_topic trong kết quả). Tôi nhận được "itemname" trong chế độ xem web và muốn thực hiện những gì tôi đã mô tả cho mã sau:

String filename = bundle.getString("itemname") + ".html"; 

Xin vui lòng, trợ giúp.

Trả lời

77

sử dụng replaceAlltoLowerCase phương pháp như thế này:

myString = myString.replaceAll(" ", "_").toLowerCase()

+0

Cảm ơn, nhưng tôi không có kết quả. Tôi sử dụng nó trong hoạt động như \t \t 'String itemname = bundle.getString (" itemname "); itemname.replaceAll ("", "_"). ToLowerCase(); 'Và sau đó' String filename = itemname + ".html"; 'Có thể không đúng. Xin vui lòng, có một cái nhìn. – Sabre

+3

u cần phải viết nó như itemname = itemname.replaceAll ("", "_"). ToLowerCase(); – everconfusedGuy

+0

@naini đã trả lời ... những phương thức này không sửa đổi chuỗi mà chúng vừa trả về một chuỗi sửa đổi mới, do đó bạn nên gán giá trị mới. – shift66

6

Bạn có thể sử dụng các phương pháp toLowerCase replaceAll & nhưng hãy nhớ rằng họ không thay đổi chuỗi (họ chỉ trả về một chuỗi biến đổi) để bạn cần gán lại cho biến, ví dụ.

String itemname = bundle.getString("itemname"); 
itemname = itemname.replaceAll(" ", "_").toLowerCase(); 
String filename = itemname + ".html"; 
+0

Doh, câu hỏi đã được trả lời dưới dạng nhận xét cho câu trả lời trước trong khi tôi nhập (và tôi đoán tôi nên đăng là nhận xét - mới cho StackOverflow) – Zarius

5

này làm việc cho tôi:

itemname = itemname.replaceAll("\\s+", "_").toLowerCase(); 

replaceAll("\\s+", "_") ở đối diện để replaceAll("\\s+", "_") ban cho ngươi gạch duy nhất trong trường hợp nhiều không gian xuất hiện ở hàng:

"first topic".replaceAll("\\s+", "_") ->first_topic

"first topic".replaceAll(" ", "_") ->first__topic

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