Using a foreach(for each) for loop on an Iterable object.
import java.util.*; class StrIterable implements Iterable<Character>, Iterator<Character> { private String str; private int count = 0; StrIterable(String s) { str = s; } // The next three methods impement Iterator. public boolean hasNext() { if(count < str.length()) return true; return false; } public Character next() { if(count == str.length()) throw new NoSuchElementException(); count++; return str.charAt(count-1); } public void remove() { throw new UnsupportedOperationException(); } // This method implements Iterable. public Iterator<Character> iterator() { return this; } } public class MainClass { public static void main(String args[]) { StrIterable x = new StrIterable("This is a test."); for(char ch : x) System.out.print(ch); System.out.println(); } }