Chuỗi chia Android


227

Tôi có một chuỗi được gọi CurrentStringvà ở dạng như thế này "Fruit: they taste good".
Tôi muốn tách ra CurrentStringbằng cách sử dụng :như dấu phân cách.
Vì vậy, từ đó "Fruit"sẽ được chia thành chuỗi riêng của nó và "they taste good"sẽ là một chuỗi khác.
Và sau đó tôi chỉ đơn giản muốn sử dụng SetText()2 loại khác nhau TextViewsđể hiển thị chuỗi đó.

Điều gì sẽ là cách tốt nhất để tiếp cận điều này?


Bạn có thể có thể thử đọc thành các biểu thức thông thường. Họ làm việc tốt quá.
Shouvik

10
@Falmarri - Bất kỳ câu hỏi độc đáo nào về lập trình đều được chào đón trên Stack Overflow.
Tim Post

Câu trả lời:


606
String currentString = "Fruit: they taste good";
String[] separated = currentString.split(":");
separated[0]; // this will contain "Fruit"
separated[1]; // this will contain " they taste good"

Bạn có thể muốn xóa khoảng trắng sang Chuỗi thứ hai:

separated[1] = separated[1].trim();

Nếu bạn muốn tách chuỗi bằng một ký tự đặc biệt như dấu chấm (.), Bạn nên sử dụng ký tự thoát \ trước dấu chấm

Thí dụ:

String currentString = "Fruit: they taste good.very nice actually";
String[] separated = currentString.split("\\.");
separated[0]; // this will contain "Fruit: they taste good"
separated[1]; // this will contain "very nice actually"

Có nhiều cách khác để làm điều đó. Chẳng hạn, bạn có thể sử dụng StringTokenizerlớp (từ java.util):

StringTokenizer tokens = new StringTokenizer(currentString, ":");
String first = tokens.nextToken();// this will contain "Fruit"
String second = tokens.nextToken();// this will contain " they taste good"
// in the case above I assumed the string has always that syntax (foo: bar)
// but you may want to check if there are tokens or not using the hasMoreTokens method

Cảm ơn vì điều đó! Cũng hữu ích để phân tách giờ và phút khi tạo đối tượng Thời gian mới.
làm việc

24
Cảm ơn bạn! Phương thức .split () hoàn toàn không hoạt động trong Android! StringTokenizeris hoạt động tốt.
Ayush Pater

Có nó ... bạn có vấn đề gì?
Cristian

split trong android nhận được một biểu thức chính quy thay vì bộ chia chuỗi đơn giản.
htafoya

1
@HardikParmar sử dụng etPhoneNo.getText().toString().replaceAll("\\D", "");câu nói thay thế tất cả những gì không phải là chữ số
MilapTank

86

Phương thức .split sẽ hoạt động, nhưng nó sử dụng các biểu thức thông thường. Trong ví dụ này, nó sẽ là (để đánh cắp Cristian):

String[] separated = CurrentString.split("\\:");
separated[0]; // this will contain "Fruit"
separated[1]; // this will contain " they taste good"

Ngoài ra, điều này đến từ: Android split không hoạt động chính xác


52

chuỗi chia Android bằng dấu phẩy

String data = "1,Diego Maradona,Footballer,Argentina";
String[] items = data.split(",");
for (String item : items)
{
    System.out.println("item = " + item);
}

25
     String s = "having Community Portal|Help Desk|Local Embassy|Reference Desk|Site News";
     StringTokenizer st = new StringTokenizer(s, "|");
        String community = st.nextToken();
        String helpDesk = st.nextToken(); 
        String localEmbassy = st.nextToken();
        String referenceDesk = st.nextToken();
        String siteNews = st.nextToken();

22

Bạn cũng có thể muốn xem xét phương thức TextUtils.split () dành riêng cho Android .

Sự khác biệt giữa TextUtils.split () và String.split () được ghi lại bằng TextUtils.split ():

String.split () trả về [''] khi chuỗi được phân tách trống. Điều này trả về []. Điều này không loại bỏ bất kỳ chuỗi trống từ kết quả.

Tôi thấy đây là một hành vi tự nhiên hơn. Về bản chất, TextUtils.split () chỉ là một trình bao bọc mỏng cho String.split (), xử lý cụ thể với trường hợp chuỗi rỗng. Mã cho phương thức này thực sự khá đơn giản.


Lợi ích của việc sử dụng TextUtils.split () thay vì chỉ gọi split () trực tiếp trên chuỗi?
nibarius

Câu trả lời được chỉnh sửa để làm rõ sự khác biệt giữa TextUtils.split () và String.split ()
gardenarh

Cảm ơn, tôi thực sự đã đọc tài liệu cho TextUtils.split () nhưng vì một số lý do tôi đã bỏ qua chi tiết này. Tôi đoán tôi đã mệt mỏi để hiểu những gì nó thực sự nói.
nibarius

0

Chuỗi s = "Chuỗi ="

Chuỗi [] str = s.split ("="); // bây giờ str [0] là "xin chào" và str [1] là "goodmorning, 2.1"

thêm chuỗi này

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.