split() วิธีการของคลาสสตริง แยกสตริงปัจจุบันรอบการจับคู่ของนิพจน์ทั่วไปที่กำหนด อาร์เรย์ที่ส่งคืนโดยวิธีนี้ประกอบด้วยสตริงย่อยแต่ละสตริงของสตริงนี้ซึ่งสิ้นสุดโดยสตริงย่อยอื่นที่ตรงกับนิพจน์ที่กำหนดหรือสิ้นสุดที่ส่วนท้ายของสตริง
replaceAll() เมธอดของคลาส String ยอมรับสองสตริงที่แสดงนิพจน์ทั่วไปและสตริงแทนที่ และแทนที่ค่าที่ตรงกันด้วยสตริงที่กำหนด
หากต้องการแทนที่อักขระทั้งหมดในไฟล์ด้วย '#' ยกเว้นคำเฉพาะ (ทางเดียว) -
-
อ่านเนื้อหาของไฟล์เป็นสตริง
-
สร้างวัตถุ StringBuffer ว่าง
-
แยกสตริงที่ได้รับออกเป็นอาร์เรย์ o ของสตริงโดยใช้ split() วิธีการ
-
สำรวจผ่านอาร์เรย์ที่ได้รับ
-
หากองค์ประกอบใดตรงกับคำที่ต้องการ ให้ผนวกเข้ากับบัฟเฟอร์สตริง
-
แทนที่อักขระในคำที่เหลือทั้งหมดด้วย '#' และผนวกเข้ากับวัตถุ StringBuffer
-
สุดท้ายแปลง StingBuffer เป็น String
ตัวอย่าง
สมมติว่าเรามีไฟล์ชื่อ sample.txt โดยมีเนื้อหาดังต่อไปนี้ -
Hello how are you welcome to Tutorialspoint we provide hundreds of technical tutorials for free.
โปรแกรมต่อไปนี้จะอ่านเนื้อหาของไฟล์เป็นสตริงแทนที่อักขระทั้งหมดในไฟล์ด้วย '#' ยกเว้นบางคำ
import java.io.File; import java.io.FileNotFoundException; import java.util.Arrays; import java.util.Scanner; public class ReplaceExcept { public static String fileToString() throws FileNotFoundException { String filePath = "D://input.txt"; Scanner sc = new Scanner(new File(filePath)); StringBuffer sb = new StringBuffer(); String input; while (sc.hasNextLine()) { input = sc.nextLine(); sb.append(input); } return sb.toString(); } public static void main(String args[]) throws FileNotFoundException { String contents = fileToString(); System.out.println("Contents of the file: \n"+contents); //Splitting the words String strArray[] = contents.split(" "); System.out.println(Arrays.toString(strArray)); StringBuffer buffer = new StringBuffer(); String word = "Tutorialspoint"; for(int i = 0; i < strArray.length; i++) { if(strArray[i].equals(word)) { buffer.append(strArray[i]+" "); } else { buffer.append(strArray[i].replaceAll(".", "#")); } } String result = buffer.toString(); System.out.println(result); } }
ผลลัพธ์
Contents of the file: Hello how are you welcome to Tutorialspoint we provide hundreds of technical tutorials for free. [Hello, how, are, you, welcome, to, Tutorialspoint, we, provide, hundreds, of, technical, tutorials, for, free.] #######################Tutorialspoint ############################################