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

จะแทนที่หลายช่องว่างในสตริงโดยใช้ช่องว่างเดียวโดยใช้ Java regex ได้อย่างไร


อักขระเมตา “\\s” จับคู่ช่องว่างและ + ระบุการเกิดขึ้นของช่องว่างอย่างน้อยหนึ่งครั้ง ดังนั้น นิพจน์ทั่วไป \\S+ จะจับคู่อักขระช่องว่างทั้งหมด (ตัวเดียวหรือหลายตัว) ดังนั้นเพื่อแทนที่หลายช่องว่างด้วยช่องว่างเดียว

จับคู่สตริงอินพุตกับนิพจน์ทั่วไปด้านบนและแทนที่ผลลัพธ์ด้วยช่องว่างเดียว “ ”

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

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

ผลลัพธ์

ป้อนสตริงสวัสดี นี่เป็นข้อความตัวอย่างที่มีช่องว่างไม่ปกติ ข้อความหลังจากลบช่องว่างที่ไม่ต้องการออก:สวัสดี นี่เป็นข้อความตัวอย่างที่มีช่องว่างไม่ปกติ

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

นำเข้า java.util.Scanner;การทดสอบคลาสสาธารณะ { public static void main(String args[]) {//Reading String from user System.out.println ("Enter a String"); สแกนเนอร์ sc =สแกนเนอร์ใหม่ (System.in); อินพุตสตริง =sc.nextLine(); // นิพจน์ทั่วไปเพื่อให้ตรงกับช่องว่าง String regex ="\\s+"; //แทนที่รูปแบบด้วยช่องว่างเดียว String result =input.replaceAll(regex, " "); System.out.print("ข้อความหลังจากลบช่องว่างที่ไม่ต้องการ:\n"+ผลลัพธ์); }}

ผลลัพธ์

ป้อนสตริงสวัสดี นี่เป็นข้อความตัวอย่างที่มีช่องว่างไม่ปกติ ข้อความหลังจากลบช่องว่างที่ไม่ต้องการออก:สวัสดี นี่เป็นข้อความตัวอย่างที่มีช่องว่างไม่ปกติ