Многие классы инфраструктуры Java реализуют Iterable, однако String этого не делает. Имеет смысл перебирать символы в String, так же, как можно перебирать элементы в регулярном массиве.
Есть ли причина, по которой String не реализует Iterable?