Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,885 questions

51,811 answers

573 users

How to reverse an array of characters without affecting the special characters in Java

2 Answers

0 votes
public class MyClass {
    static boolean is_letter(char x) { 
        return ((x >= 'a' && x <= 'z') || (x >= 'A' && x <= 'Z')); 
    } 
    static void reverse(char s[]) { 
        int right = s.length - 1, left = 0; 
       
        while (left < right) { 
            if (!is_letter(s[left])) 
                left++; 
            else if (!is_letter(s[right])) 
                    right--; 
                 else { 
                    char tmp = s[left];
                    s[left] = s[right];
                    s[right] = tmp;
                    left++; 
                    right--; 
                 } 
        } 
    } 
    public static void main(String args[]) {
        String str = "a#b$%c&*(def!";
		char[] s = str.toCharArray();

        reverse(s); 

        System.out.println(s);
    }
}



/*
run:

f#e$%d&*(cba!

*/

 



answered Jun 15, 2019 by avibootz
0 votes
public class MyClass {
    static void reverse(char s[]) { 
        int right = s.length - 1, left = 0; 
       
        while (left < right) { 
            if (!Character.isAlphabetic(s[left])) 
                left++; 
            else if (!Character.isAlphabetic(s[right])) 
                    right--; 
                 else { 
                    char tmp = s[left];
                    s[left] = s[right];
                    s[right] = tmp;
                    left++; 
                    right--; 
                 } 
        } 
    } 
    public static void main(String args[]) {
        String str = "a#b$%c&*(def!";
		char[] s = str.toCharArray();

        reverse(s); 

        System.out.println(s);
    }
}



/*
run:

f#e$%d&*(cba!

*/

 



answered Jun 15, 2019 by avibootz
...