สมมติมี String:
String myStr = "Jamie";
ตั้งตัวแปร count = 0 Loop ทุก Character นับสระ (a, e, i, o, u) ไม่สนใจ Case
for (char ch : myStr.toCharArray()) {
ch = Character.toLowerCase(ch);
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
++count;
}
}
ตัวอย่างโค้ดเต็ม
public class Demo {
public static void main(String[] args) {
String myStr = "Jamie";
int count = 0;
System.out.println("String = " + myStr);
for (char ch : myStr.toCharArray()) {
ch = Character.toLowerCase(ch);
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
++count;
}
}
System.out.println("Vowels = " + count);
}
}
ผลลัพธ์
String = Jamie
Vowels = 3
วิธีอื่น (Java 8+ Streams):
long count = myStr.toLowerCase().chars()
.filter(ch -> "aeiou".indexOf(ch) >= 0)
.count();
ขยายได้: รองรับสระภาษาอื่น (ยูนิโค้ด) โดยปรับเงื่อนไข Filter