How to reverse a string without affecting special characters in Java

1 Answer

0 votes
public class MyClass {
    public static String reverseStringWithoutTheSpecialCharacters(String str) {
        int right = str.length() - 1;
        char[] arr = str.toCharArray();
        int left = 0;
     
        while (left < right) {
            if (!Character.isLetter(arr[left])) {
                left++;
            }
            else if (!Character.isLetter(arr[right])) {
                right--;
            }
            else {
                char tmp = arr[left];
                arr[left] = arr[right];
                arr[right] = tmp;
 
                left++;
                right--;
            }
        }
        return new String(arr);
    }
    public static void main(String args[]) {
        String str = "ab*#cde!@$,fg{}";
 
        str = reverseStringWithoutTheSpecialCharacters(str);
 
        System.out.print(str);
    }
}
 
 
 
 
/*
run:
  
gf*#edc!@$,ba{}
  
*/

 



answered Aug 22, 2022 by avibootz
edited Aug 23, 2022 by avibootz
...