/** * Find the longest common prefix of the command line arguments * In several different ways * * G Towell * Nov 2023 */ public class Activity17 { public static void main(String[] args) { main_justFirst(args); main_all(args); main_first_func(args); main_all_func(args); } public static void main_justFirst(String[] args) { String first = args[0]; int longest = 0; for (int i = 1; i < first.length(); i++) { String prefix = first.substring(0, i); for (int j = 1; j < args.length; j++) { if (args[j].startsWith(prefix)) { longest = i; break; } } } System.out.println(longest); } public static void main_all(String[] args) { int longest = 0; for (int z = 0; z < args.length; z++) { String first = args[z]; for (int i = 1; i < first.length(); i++) { String prefix = first.substring(0, i); for (int j = 0; j < args.length; j++) { if (j != z && args[j].startsWith(prefix)) { if (i > longest) { longest = i; } break; } } } } System.out.println("ALL: " + longest); } public static void main_first_func(String[] args) { int longest = prefixer(args, 0); System.out.println("prefix 0: " + longest); } public static void main_all_func(String[] args) { int longest = 0; for (int z = 0; z < args.length; z++) { int l = prefixer(args, z); if (l > longest) { longest = l; } } System.out.println("prefix all: " + longest); } public static int prefixer(String[] args, int z) { String first = args[z]; int longest = 0; for (int i = 1; i < first.length(); i++) { String prefix = first.substring(0, i); for (int j = 0; j < args.length; j++) { if (j != z && args[j].startsWith(prefix)) { if (i > longest) { longest = i; } break; } } if (longest != i) { break; } } return longest; } }