Android Split string

227

Saya memiliki string yang disebut CurrentStringdan dalam bentuk sesuatu seperti ini "Fruit: they taste good".
Saya ingin membagi CurrentStringmenggunakan :sebagai pembatas.
Dengan demikian kata "Fruit"tersebut akan dipecah menjadi string sendiri dan "they taste good"akan menjadi string lain.
Dan kemudian saya hanya ingin menggunakan SetText()2 yang berbeda TextViewsuntuk menampilkan string itu.

Apa cara terbaik untuk mendekati ini?

Zaid
sumber
Anda mungkin dapat mencoba membaca ekspresi reguler. Mereka juga bekerja dengan baik.
Shouvik
10
@ Falmarri - Setiap pertanyaan unik tentang pemrograman diterima di Stack Overflow.
Pos Tim

Jawaban:

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"

Anda mungkin ingin menghapus spasi ke String kedua:

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

Jika Anda ingin membagi string dengan karakter khusus seperti titik (.), Anda harus menggunakan karakter escape \ sebelum titik

Contoh:

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"

Ada cara lain untuk melakukannya. Misalnya, Anda dapat menggunakan StringTokenizerkelas (dari 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
Cristian
sumber
Terima kasih untuk ini! Juga berguna untuk memisahkan jam dan menit saat membuat objek Waktu baru.
bekerja
24
Terima kasih! Metode .split () tidak berfungsi sama sekali di Android! StringTokenizer berfungsi dengan baik.
Ayush Pateria
Ya itu ... masalah apa yang Anda miliki?
Cristian
split di android menerima ekspresi reguler alih-alih pembagi string sederhana.
htafoya
1
@HardikParmar menggunakan etPhoneNo.getText().toString().replaceAll("\\D", "");kata yang menggantikan semua yang bukan digit
MilapTank
86

Metode .split akan berfungsi, tetapi menggunakan ekspresi reguler. Dalam contoh ini akan (mencuri dari Cristian):

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

Juga, ini berasal dari: Android split tidak berfungsi dengan benar

Silas Greenback
sumber
52

Android membagi string dengan koma

String data = "1,Diego Maradona,Footballer,Argentina";
String[] items = data.split(",");
for (String item : items)
{
    System.out.println("item = " + item);
}
mahasam
sumber
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();
Faakhir
sumber
22

Anda mungkin juga ingin mempertimbangkan metode TextUtils.split () khusus Android .

Perbedaan antara TextUtils.split () dan String.split () didokumentasikan dengan TextUtils.split ():

String.split () mengembalikan [''] ketika string yang akan dibelah kosong. Ini mengembalikan []. Ini tidak menghapus string kosong dari hasilnya.

Saya menemukan ini perilaku yang lebih alami. Intinya TextUtils.split () hanyalah pembungkus tipis untuk String.split (), yang secara khusus berhubungan dengan case string kosong. Kode untuk metode ini sebenarnya cukup sederhana.

gardarh
sumber
Apa manfaat menggunakan TextUtils.split () daripada hanya memanggil split () langsung pada string?
nibarius
Jawaban yang diedit untuk memperjelas perbedaan antara TextUtils.split () dan String.split ()
gardarh
Terima kasih, saya benar-benar membaca dokumentasi untuk TextUtils.split () tetapi karena beberapa alasan saya melewatkan detail ini. Saya kira saya terlalu lelah untuk memahami apa yang sebenarnya dikatakan.
nibarius
0

String s = "String ="

String [] str = s.split ("="); // sekarang str [0] adalah "halo" dan str [1] adalah "selamat pagi, 2,1"

tambahkan string ini


sumber