javastringiterationcharactertokenize

What is the easiest/best/most correct way to iterate through the characters of a string in Java?


Some ways to iterate through the characters of a string in Java are:

  1. Using StringTokenizer?
  2. Converting the String to a char[] and iterating over that.

What is the easiest/best/most correct way to iterate?


Solution

  • As far as correctness goes, this only works for Unicode Code Points in the Basic Multilingual Plane (those that can be represented by a single two byte char in Java). If you have characters outside of that, you will get two chars with an individual surrogate pair in each of them to represent a single real world character.

    I use a for loop to iterate the string and use charAt() to get each character to examine it. Since the String is implemented with an array, the charAt() method is a constant time operation.

    String s = "...stuff...";
    
    for (int i = 0; i < s.length(); i++){
        char c = s.charAt(i);        
        //Process char
    }
    

    That's what I would do. It seems the easiest to me.