@ BasilBourque - Saya tidak dapat menemukan tombol jalankan di tautan itu
nanosoft
1
@nanosoft Halaman di IdeOne.com berjalan secara otomatis saat memuat. Lihat output di bawah kode, di bagian stdout . Untuk mengubah kode, klik forktautan di dekat sudut kiri atas.
Apa yang Anda miliki harus berhasil. Namun, jika ruang yang disediakan adalah default ke ... sesuatu yang lain? Anda dapat menggunakan regex spasi putih:
str ="Hello I'm your String";String[] splited = str.split("\\s+");
Ini akan menyebabkan sejumlah ruang berurutan untuk membagi string Anda menjadi token.
Sebagai catatan, saya tidak yakin "terpecah" adalah sebuah kata :) Saya percaya keadaan menjadi korban perpecahan juga "terpecah". Itu salah satu dari hal tata bahasa yang rumit :-) Tidak mencoba untuk pilih-pilih, hanya mengira saya akan meneruskannya!
Saya orang Swiss apa yang Anda harapkan, bahasa Inggris saya bukan yang terbaik;
safari
29
:-) Hei itu tidak besar. Saya telah menggunakan beberapa nama variabel konyol (dalam kode saya mungkin seharusnya tidak membiarkannya ditayangkan!) Saya tidak mencoba menjadi nazi tata bahasa atau apa pun, hanya meneruskan sedikit hal-hal sepele, itu saja.
corsiKa
7
@ Safari, Anda baru saja mendapat 2 saran hebat di harga 1. hanya bercanda. Jawaban yang bagus
Nirmal Mangal
8
"Apa yang Anda miliki harus bekerja," Saya mengatakan sesuatu yang serupa cukup sering ketika kode saya rusak.
Griffin
1
Saya merasa berguna karena use case saya adalah untuk memisahkan string dan menghapus beberapa spasi. Satu baris kode tidak baik untuk saya.
Niharika Upadhyay
87
Meskipun jawaban yang diterima baik, perlu diketahui bahwa Anda akan berakhir dengan string kosong terkemuka jika string input Anda mulai dengan spasi putih. Misalnya, dengan:
String str =" Hello I'm your String";String[] splitStr = str.split("\\s+");
Saya percaya bahwa menempatkan ekspresi reguler dalam kurung str.split harus menyelesaikan masalah. Metode Java String.split () didasarkan pada ekspresi reguler sehingga yang Anda butuhkan adalah:
str ="Hello I'm your String";String[] splitStr = str.split("\\s+");
Ada kemungkinan melempar Pengecualian ArrayIndexOutofBounds.
Ajay Takur
2
Tidak, ini tidak akan membuang "ArrayIndexOutofBounds" karena saya telah menyatakan ukuran array berdasarkan jumlah token yang ditemukan di String. ini akan memastikan bahwa ukuran array tidak akan lebih dari token yang diterima dalam sebuah string.
import java.util.regex.Pattern;...privatestaticfinalPattern SPACE =Pattern.compile(" ");String[] arr = SPACE.split(str);// str is the string to be split
Itu replaceAll("^\\s+","")menyelamatkan hari saya. Itu berhasil untuk kasus saya. Terima kasih
Kostas Asargiotakis
2
Contoh Sangat Sederhana di bawah ini:
Semoga ini bisa membantu.
String str ="Hello I'm your String";String[] splited = str.split(" ");
var splited = str.split(" ");
var splited1=splited[0];//Hello
var splited2=splited[1];//I'm
var splited3=splited[2];//your
var splited4=splited[3];//String
Sekarang Anda memiliki daftar string (yang bisa dibilang lebih baik daripada array); jika Anda memang membutuhkan array, Anda bisa melakukannyaoutput.toArray(new String[0]);
fork
tautan di dekat sudut kiri atas.Jawaban:
Apa yang Anda miliki harus berhasil. Namun, jika ruang yang disediakan adalah default ke ... sesuatu yang lain? Anda dapat menggunakan regex spasi putih:
Ini akan menyebabkan sejumlah ruang berurutan untuk membagi string Anda menjadi token.
Sebagai catatan, saya tidak yakin "terpecah" adalah sebuah kata :) Saya percaya keadaan menjadi korban perpecahan juga "terpecah". Itu salah satu dari hal tata bahasa yang rumit :-) Tidak mencoba untuk pilih-pilih, hanya mengira saya akan meneruskannya!
sumber
Meskipun jawaban yang diterima baik, perlu diketahui bahwa Anda akan berakhir dengan string kosong terkemuka jika string input Anda mulai dengan spasi putih. Misalnya, dengan:
Hasilnya adalah:
Jadi, Anda mungkin ingin memotong string Anda sebelum membaginya:
sumber
Saya percaya bahwa menempatkan ekspresi reguler dalam kurung str.split harus menyelesaikan masalah. Metode Java String.split () didasarkan pada ekspresi reguler sehingga yang Anda butuhkan adalah:
sumber
Gunakan
Stringutils.split()
untuk membagi string dengan langkah putih. MisalnyaStringUtils.split("Hello World")
mengembalikan "Halo" dan "Dunia";Untuk menyelesaikan kasus yang disebutkan, kami menggunakan metode split seperti ini
ketika kita mencetak array split, hasilnya adalah:
Halo
Aku
anda
Tali
Untuk contoh lengkap, periksa di sini
sumber
Mencoba
http://download.oracle.com/javase/tutorial/essential/regex/pre_char_classes.html
sumber
jika entah bagaimana Anda tidak ingin menggunakan metode String split maka Anda dapat menggunakan kelas StringTokenizer di Java sebagai ..
sumber
Coba yang ini
sumber
Cara alternatif adalah:
Lihat di sini
sumber
OK, jadi kita harus melakukan pemisahan karena Anda sudah mendapat jawaban saya akan menggeneralisasikannya.
Jika Anda ingin membagi string dengan spasi, pembatas (karakter khusus).
Pertama, hapus ruang utama saat mereka membuat sebagian besar masalah.
Pertama-tama hapus ruang utama yang bisa berupa ruang, tab dll
Sekarang jika Anda ingin membagi berdasarkan ruang atau karakter khusus apa pun.
Tetapi karena w berisi [a-zA-Z_0-9], jadi jika Anda ingin membaginya dengan garis bawah (_) juga gunakan
sumber
replaceAll("^\\s+","")
menyelamatkan hari saya. Itu berhasil untuk kasus saya. Terima kasihContoh Sangat Sederhana di bawah ini:
Semoga ini bisa membantu.
sumber
Anda dapat memisahkan string menggunakan kode di bawah ini
sumber
Berikut adalah metode untuk memangkas String yang memiliki "," atau spasi putih
sumber
Karena sudah lama sejak jawaban ini diposkan, berikut ini cara lain untuk melakukan apa yang diminta:
Sekarang Anda memiliki daftar string (yang bisa dibilang lebih baik daripada array); jika Anda memang membutuhkan array, Anda bisa melakukannya
output.toArray(new String[0]);
sumber
Tidak hanya ruang putih, tetapi solusi saya juga memecahkan karakter yang tidak terlihat.
sumber
Simple to Spit String by Space
sumber