Java Anagrams

Sort by

recency

|

2488 Discussions

|

  • + 1 comment

    This challenge drove me nuts, but I'm satisfied to have found a solution.

    static boolean isAnagram(String a, String b) { 
            a = a.toLowerCase();
            b = b.toLowerCase();
            
            if(a.length() != b.length()){
                return false;
            }
            
            char[] arrayA = a.toCharArray();
            char[] arrayB = b.toCharArray();
            
            for(int i = 0; i < a.length(); i++){
                for(int j = 0; j < b.length(); j++){
                    if(arrayA[i] == arrayB[j]){
                        arrayA[i] = 0;
                        arrayB[j] = 0;
                    }
                }
            }
            
            for(int i = 0; i < a.length(); i++){
                if(arrayA[i] != 0){
                    return false;
                }
            }
            return true;
        }
    
  • + 0 comments

    In Java 8, we can't use imports, so we handle arrays manually :

        static char[] BubbleSort(char[] arr) {
            int n = arr.length;
            char temp;
            for (int i = 0; i < n; i++) {
                for (int j = 1; j < (n - i); j++) {
                    if (arr[j - 1] > arr[j]) {
                        temp = arr[j - 1];
                        arr[j - 1] = arr[j];
                        arr[j] = temp;
                    }
                }
            }
            return arr;
        }
    
        static boolean isAnagram(String a, String b) {
            int lenA = a.length();
            int lenB = b.length();
    
            if (lenA != lenB || lenA < 1 || lenB < 1 || lenA > 50 || lenB > 50) {
                return false;
            }
    
            char[] arrA = a.toLowerCase().toCharArray();
            char[] arrB = b.toLowerCase().toCharArray();
    
            arrA = BubbleSort(arrA);
            arrB = BubbleSort(arrB);
    
            for (int i = 0; i < arrA.length; i++) {
                if (arrA[i] != arrB[i]) {
                    return false;
                }
            }
    
            return true;
        }
    
  • + 0 comments
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int[] a = scan.nextLine().toLowerCase().chars().sorted().toArray();
        int[] b = scan.nextLine().toLowerCase().chars().sorted().toArray();
        scan.close();
        
        if (Arrays.equals(a,b))
            System.out.print("Anagrams");
        else
            System.out.print("Not Anagrams");
    }
    
  • + 0 comments
    import java.util.Scanner;
    
    public class Solution {
    
        static boolean isAnagram(String a, String b) {
            if(a.length()!=b.length()){
                return false;
            }
    
            char[] charA=a.toLowerCase().toCharArray();
            char[] charB=b.toLowerCase().toCharArray();
    
            java.util.Arrays.sort(charA);
            java.util.Arrays.sort(charB);
    
            return java.util.Arrays.equals(charA, charB);
        }
    
    
        public static void main(String[] args) {
    
            Scanner scan = new Scanner(System.in);
            String a = scan.next();
            String b = scan.next();
            scan.close();
            boolean ret = isAnagram(a, b);
            System.out.println( (ret) ? "Anagrams" : "Not Anagrams" );
        }
    }
    
  • + 0 comments

    import java.io.; import java.util.; import java.util.stream.*;

    public class Solution {

    public static String isAnagram(String s1, String s2){ boolean string = s1.toLowerCase().chars().sorted().boxed().collect(Collectors.toList()).equals(s2.toLowerCase().chars().sorted().boxed().collect(Collectors.toList())); if(string ==true){ return "Anagrams"; } return "Not Anagrams"; } public static void main(String[] args) { Scanner s = new Scanner(System.in); String a = s.nextLine(); String b = s.nextLine(); System.out.println(isAnagram(a,b)); } }