आवश्यकता: एक फ़ाइल पढ़ें, सभी वर्णों को # से बदलें सिवाय एक विशिष्ट शब्द (उदाहरण: "Tutorialspoint") के।
दृष्टिकोण
- फ़ाइल सामग्री को स्ट्रिंग में पढ़ें
- शब्दों में विभाजित करें (
split(" ")) - प्रत्येक शब्द के लिए: यदि लक्ष्य शब्द से मेल खाता है → जैसा है रखें; अन्यथा प्रत्येक वर्ण को
#से बदलें - परिणाम जोड़ें
उदाहरण
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.Scanner;
public class ReplaceExceptWord {
public static String fileToString() throws FileNotFoundException {
Scanner sc = new Scanner(new File("D://input.txt"));
StringBuilder sb = new StringBuilder();
while (sc.hasNextLine()) sb.append(sc.nextLine());
return sb.toString();
}
public static void main(String args[]) throws FileNotFoundException {
String contents = fileToString();
System.out.println("Original:\n" + contents);
String[] words = contents.split(" ");
String target = "Tutorialspoint";
StringBuilder result = new StringBuilder();
for (String word : words) {
if (word.equals(target)) {
result.append(word).append(" ");
} else {
result.append(word.replaceAll(".", "#")).append(" ");
}
}
System.out.println("Result:\n" + result.toString().trim());
}
}आउटपुट
Original: Hello how are you welcome to Tutorialspoint we provide hundreds of technical tutorials for free. Result: ####################### Tutorialspoint ############################################
सुधार
split("\\s+")का उपयोग करें ताकि एकाधिक स्पेस/न्यूलाइन संभाल सकें।- विराम चिह्न संरक्षण के लिए, रेगेक्स
\\bशब्द सीमाओं के साथ उपयोग करें। - बड़ी फ़ाइलों के लिए स्ट्रीमिंग प्रोसेसिंग पर विचार करें।