fork download
  1.  
  2. import java.util.ArrayList;
  3.  
  4. public class Main {
  5.  
  6. private final ArrayList<Character>[] lowerCaseToChar = new ArrayList[Character.MAX_VALUE];
  7. private final ArrayList<Character>[] upperCaseToChar = new ArrayList[Character.MAX_VALUE];
  8. private final ArrayList<Character>[] lowerCaseOfUpperCaseToChar = new ArrayList[Character.MAX_VALUE];
  9.  
  10. private final char lowerCases[] = new char[Character.MAX_VALUE];
  11. private final char upperCases[] = new char[Character.MAX_VALUE];
  12.  
  13. public static void main(String[] args) {
  14. Main main = new Main();
  15. main.searchForSamples();
  16. }
  17.  
  18. private Main() {
  19. initArray(lowerCaseToChar);
  20. initArray(upperCaseToChar);
  21. initArray(lowerCaseOfUpperCaseToChar);
  22. }
  23.  
  24. private void searchForSamples() {
  25. for (char ch = 1; ch < Character.MAX_VALUE; ch++) {
  26. char lowerCase = Character.toLowerCase(ch);
  27. char upperCase = Character.toUpperCase(ch);
  28. char lowerCaseOfUpperCase = Character.toLowerCase(upperCase);
  29. for (Character sameLowerCase : lowerCaseToChar[lowerCase]) {
  30. if (upperCases[sameLowerCase] != upperCase) {
  31. print(sameLowerCase, ch, "Same lowercases different uppercases");
  32. }
  33. }
  34. for (Character sameUpperCase : upperCaseToChar[upperCase]) {
  35. if (lowerCases[sameUpperCase] != lowerCase) {
  36. print(sameUpperCase, ch, "Same uppercases different lowercases");
  37. }
  38. }
  39.  
  40. for (Character sameLowerCaseOfUpperCase : lowerCaseOfUpperCaseToChar[lowerCaseOfUpperCase]) {
  41. if (upperCases[sameLowerCaseOfUpperCase] != upperCase
  42. && lowerCases[sameLowerCaseOfUpperCase] != lowerCase) {
  43. print(sameLowerCaseOfUpperCase, ch, "Same lowercase of uppercase");
  44. }
  45. }
  46. lowerCases[ch] = lowerCase;
  47. upperCases[ch] = upperCase;
  48. lowerCaseToChar[lowerCase].add(ch);
  49. upperCaseToChar[upperCase].add(ch);
  50. lowerCaseOfUpperCaseToChar[lowerCaseOfUpperCase].add(ch);
  51. }
  52. }
  53.  
  54. private void print(char first, char second, String message) {
  55. System.out.println(String.format("%s: %c (%d) - %c (%d)", message, first, (int) first, second, (int) second));
  56. }
  57.  
  58. private void initArray(ArrayList<Character>[] arr) {
  59. for (int i = 0; i < arr.length; i++) {
  60. arr[i] = new ArrayList<>();
  61. }
  62. }
  63. }
  64.  
Success #stdin #stdout 0.29s 380480KB
stdin
Standard input is empty
stdout
Same lowercases different uppercases: I (73) - İ (304)
Same lowercases different uppercases: i (105) - İ (304)
Same uppercases different lowercases: I (73) - ı (305)
Same uppercases different lowercases: i (105) - ı (305)
Same lowercase of uppercase: İ (304) - ı (305)
Same uppercases different lowercases: S (83) - ſ (383)
Same uppercases different lowercases: s (115) - ſ (383)
Same uppercases different lowercases: ͅ (837) - Ι (921)
Same uppercases different lowercases: µ (181) - Μ (924)
Same uppercases different lowercases: ͅ (837) - ι (953)
Same uppercases different lowercases: µ (181) - μ (956)
Same uppercases different lowercases: Σ (931) - ς (962)
Same uppercases different lowercases: ς (962) - σ (963)
Same uppercases different lowercases: Β (914) - ϐ (976)
Same uppercases different lowercases: β (946) - ϐ (976)
Same uppercases different lowercases: Θ (920) - ϑ (977)
Same uppercases different lowercases: θ (952) - ϑ (977)
Same uppercases different lowercases: Φ (934) - ϕ (981)
Same uppercases different lowercases: φ (966) - ϕ (981)
Same uppercases different lowercases: Π (928) - ϖ (982)
Same uppercases different lowercases: π (960) - ϖ (982)
Same uppercases different lowercases: Κ (922) - ϰ (1008)
Same uppercases different lowercases: κ (954) - ϰ (1008)
Same uppercases different lowercases: Ρ (929) - ϱ (1009)
Same uppercases different lowercases: ρ (961) - ϱ (1009)
Same lowercases different uppercases: Θ (920) - ϴ (1012)
Same lowercases different uppercases: θ (952) - ϴ (1012)
Same lowercase of uppercase: ϑ (977) - ϴ (1012)
Same uppercases different lowercases: Ε (917) - ϵ (1013)
Same uppercases different lowercases: ε (949) - ϵ (1013)
Same uppercases different lowercases: Ṡ (7776) - ẛ (7835)
Same uppercases different lowercases: ṡ (7777) - ẛ (7835)
Same lowercases different uppercases: ß (223) - ẞ (7838)
Same uppercases different lowercases: ͅ (837) - ι (8126)
Same uppercases different lowercases: Ι (921) - ι (8126)
Same uppercases different lowercases: ι (953) - ι (8126)
Same lowercases different uppercases: Ω (937) - Ω (8486)
Same lowercases different uppercases: ω (969) - Ω (8486)
Same lowercases different uppercases: K (75) - K (8490)
Same lowercases different uppercases: k (107) - K (8490)
Same lowercases different uppercases: Å (197) - Å (8491)
Same lowercases different uppercases: å (229) - Å (8491)