import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.util.regex.Pattern; class Demo { static void searchFile(final Pattern patTarget, final File file) throws Exception { var br = new BufferedReader(new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8)); String line; while ((line = br.readLine()) != null) { if (patTarget.matcher(line).find()) { // *** Use the case insensitive literal System.out.println("Found '" + line + "' in file " + file.getName()); } } } static void searchCurrentDirectory(final Pattern patTarget) throws Exception { File dir = new File("."); File []nodes = dir.listFiles(); for (var node : nodes) { if (node.isDirectory()) continue; searchFile(patTarget, node); } } public static void main(String []args) throws Exception { if (args.length < 1) { System.err.println("Usage: demo <target>"); return; } String target = args[0]; Pattern patTarget = Pattern.compile(target, Pattern.LITERAL|Pattern.CASE_INSENSITIVE); // *** Make the case-insensitive literal searchCurrentDirectory(patTarget); } }
Programming Tips - Java: Search for a literal String without being sensitive to case
Date: 2017apr14
Update: 2025sep19
Language: Java
Q. Java: Search for a literal String without being sensitive to case
A. Turn your String into a Pattern using the LITERAL and CASE_INSENSITIVE options.
As shown in this full example: