Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะแยกตัวเลขออกจากสตริงโดยใช้นิพจน์ทั่วไปได้อย่างไร


คุณสามารถจับคู่ตัวเลขในสตริงที่กำหนดโดยใช้นิพจน์ทั่วไปอย่างใดอย่างหนึ่งต่อไปนี้ -

“\\d+”หรือ"([0-9]+)"

ตัวอย่างที่ 1

<ก่อน> นำเข้า java.util.Scanner; นำเข้า java.util.regex.Matcher; นำเข้า java.util.regex.Pattern; คลาสสาธารณะ ExtractingDigits { โมฆะสาธารณะหลัก (สตริง [] args) { Scanner sc =สแกนเนอร์ใหม่ (ระบบ .ใน); System.out.println("ป้อนข้อความตัวอย่าง:"); ข้อมูลสตริง =sc.nextLine(); //นิพจน์ทั่วไปเพื่อจับคู่ตัวเลขในสตริง String regex ="\\d+"; //การสร้างวัตถุรูปแบบ Pattern pattern =Pattern.compile(regex); //การสร้างวัตถุตัวจับคู่ตัวจับคู่ตัวจับคู่ =pattern.matcher(data); System.out.println("ตัวเลขในสตริงที่กำหนดคือ:"); ในขณะที่ (matcher.find ()) { System.out.print (matcher.group ()+" "); } }}

ผลลัพธ์

ป้อนข้อความตัวอย่าง:นี่คือตัวอย่าง 23 ข้อความ 46 ที่มี 11223 ตัวเลขใน itDigits ในสตริงที่กำหนดคือ:23 46 11223

ตัวอย่างที่ 2

import java.util.regex.Matcher;import java.util.regex.Pattern;public class Just { public static void main(String[] args) { ข้อมูลสตริง ="abc12def334hjdsk7438dbds3y388"; //นิพจน์ปกติเป็นตัวเลข String regex ="([0-9]+)"; //การสร้างวัตถุรูปแบบ Pattern pattern =Pattern.compile(regex); //การสร้างวัตถุตัวจับคู่ตัวจับคู่ตัวจับคู่ =pattern.matcher(data); System.out.println("ตัวเลขในสตริงที่กำหนดคือ:"); ในขณะที่ (matcher.find ()) { System.out.print (matcher.group ()+" "); } }}

ผลลัพธ์

ตัวเลขในสตริงที่ระบุคือ:12 334 7438 3 388