Saya sedang menulis program di mana pengguna memasukkan String dalam format berikut:
"What is the square of 10?"
- Saya perlu memeriksa apakah ada nomor di String
- lalu ekstrak angkanya saja.
- Jika saya menggunakan
.contains("\\d+")
atau.contains("[0-9]+")
, program tidak dapat menemukan nomor di String, tidak peduli apa inputnya, tetapi.matches("\\d+")
hanya akan berfungsi jika hanya ada angka.
Apa yang dapat saya gunakan sebagai solusi untuk menemukan dan mengekstrak?
Jawaban:
coba ini
sumber
Jika Anda ingin mengekstrak angka pertama dari string input, Anda dapat melakukan-
Contoh:
sumber
Saya pikir ini lebih cepat dari regex.
sumber
s=s.replaceAll("[*a-zA-Z]", "")
menggantikan semua hurufs=s.replaceAll("[*0-9]", "")
menggantikan semua angkajika Anda melakukan di atas dua penggantian, Anda akan mendapatkan semua string berkarakter khusus
Jika Anda ingin mengekstrak hanya bilangan bulat dari a
String s=s.replaceAll("[^0-9]", "")
Jika Anda hanya ingin mengekstrak Abjad dari file
String s=s.replaceAll("[^a-zA-Z]", "")
Selamat coding :)
sumber
Saya tidak dapat menemukan satu pola pun yang benar. Silakan ikuti panduan di bawah ini untuk solusi kecil dan manis.
sumber
Kode di bawah ini cukup untuk "Periksa apakah String berisi angka di Java"
sumber
sumber
Coba pola berikut:
sumber
"please"
ini akan gagal. Ditambah dalam contoh OP, ada "?" untuk menjelaskan."10"
sampel.Solusi yang saya gunakan terlihat seperti ini:
Saya yakin ini bukan solusi yang tepat, tetapi sesuai dengan kebutuhan saya. Terima kasih atas bantuannya. :)
sumber
Anda bisa mencobanya
sumber
Karena Anda tidak hanya ingin mencari angka tetapi juga mengekstraknya, Anda harus menulis fungsi kecil yang melakukannya untuk Anda. Lakukan huruf demi huruf sampai Anda menemukan satu digit. Ah, baru saja menemukan kode yang diperlukan untuk Anda di stackoverflow: temukan integer dalam string . Lihat jawaban yang diterima.
sumber
sumber
.matches(".*\\d+.*")
hanya berfungsi untuk angka tetapi tidak untuk simbol lain seperti//
atau*
dll.sumber
ASCII ada di awal UNICODE, jadi Anda dapat melakukan sesuatu seperti ini:
Saya yakin Anda bisa mengetahui nilai-nilai lainnya ...
sumber