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();
}
}
|