split() method of String class. Split the current string into matches of the given regular expression. The array returned by this method contains each substring of this string that is terminated by another substring that matches the given expression or terminates at the end of the string.
replaceAll() Methods of the String class accept two strings representing regular expressions and a replacement string, and replace the matching value with the given string.
Replace all characters in the file except specific words with "#" (one way) -
Read the contents of the file into a string.
Create an empty StringBuffer object.
Use the split() method to split the obtained string into a String array.
Traverse the obtained array.
If any element in it matches the desired word, append it to the String buffer.
Replace all characters in the remaining words with "#" and append them to the StringBuffer object.
Finally convert StingBuffer to String.
>Suppose we have a file named sample.txt, which contains the following content-
Hello how are you welcome to Tutorialspoint we provide hundreds of technical tutorials for free.
The following program reads the file content Takes a string and replaces all characters in it except specific words with "#".
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 ############################################
The above is the detailed content of Write a program in Java to replace all characters in a file with '#' except specific words. For more information, please follow other related articles on the PHP Chinese website!