การนับและกรองอักขระ
งาน char ที่ใช้ได้จริง
การนับและกรองอักขระ เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน
การนับด้วยการวนซ้ำ
หากต้องการนับอักขระ ให้ใช้ตัวแปรตัวนับและบวก 1 ทุกครั้งที่ตรงตามเงื่อนไข
เริ่มตัวนับที่ 0 วนซ้ำผ่านอักขระทุกตัว และเพิ่มค่าตัวนับเมื่ออักขระผ่านเกณฑ์การทดสอบของคุณ
int count = 0;
for (char c : "hello".toCharArray()) {
count++;
}การนับสระ
ในส่วนนี้ เราจะนับสระโดยตรวจสอบอักขระแต่ละตัวกับชุดสระ
เราจะเปลี่ยนอักขระเป็นตัวพิมพ์เล็กก่อน เพื่อให้นับทั้ง 'A' และ 'a' ด้วยวิธีเดียวกัน
public class Main {
public static void main(String[] args) {
String text = "Java Rocks";
int vowels = 0;
for (char c : text.toCharArray()) {
char low = Character.toLowerCase(c);
if (low == 'a' || low == 'e' || low == 'i' || low == 'o' || low == 'u') {
vowels++;
}
}
System.out.println(vowels);
}
}การนับตัวเลข
หากต้องการนับว่ามีตัวเลขปรากฏอยู่ใน String กี่ตัว ให้ใช้ Character.isDigit ภายในลูป
วิธีนี้จะข้ามตัวอักษรและสัญลักษณ์โดยอัตโนมัติ ดังนั้นตัวนับของคุณจะเพิ่มขึ้นเฉพาะเมื่อพบตัวเลข
public class Main {
public static void main(String[] args) {
String text = "abc123x9";
int digits = 0;
for (char c : text.toCharArray()) {
if (Character.isDigit(c)) digits++;
}
System.out.println(digits);
}
}การนับตัวอักษร
เปลี่ยนมาใช้ Character.isLetter เพื่อใช้นับอักขระที่เป็นตัวอักษรแทน
โครงสร้างยังคงเหมือนเดิม ได้แก่ วนซ้ำ ตรวจสอบ และเพิ่มค่า สิ่งที่เปลี่ยนมีเพียงเงื่อนไข
public class Main {
public static void main(String[] args) {
String text = "a1 b2 c3";
int letters = 0;
for (char c : text.toCharArray()) {
if (Character.isLetter(c)) letters++;
}
System.out.println(letters);
}
}การนับอักขระที่ระบุ
หากต้องการนับอักขระใดอักขระหนึ่ง ให้เปรียบเทียบอักขระแต่ละตัวด้วย ==
วิธีนี้จะนับว่าตัวอักษร 'a' ปรากฏในข้อความกี่ครั้ง
public class Main {
public static void main(String[] args) {
String text = "banana";
int aCount = 0;
for (char c : text.toCharArray()) {
if (c == 'a') aCount++;
}
System.out.println(aCount);
}
}การกรองอักขระออก
การกรองหมายถึงการสร้าง String ใหม่ที่เก็บไว้เฉพาะอักขระที่คุณต้องการ
ในที่นี้ เราจะเก็บตัวอักษรและตัวเลข โดยตัดช่องว่างกับเครื่องหมายวรรคตอนออกด้วยการต่ออักขระเข้ากับ String ผลลัพธ์
public class Main {
public static void main(String[] args) {
String text = "a-b 1!2";
String clean = "";
for (char c : text.toCharArray()) {
if (Character.isLetterOrDigit(c)) clean += c;
}
System.out.println(clean);
}
}การใช้ StringBuilder
การสร้าง String ด้วย += ภายในลูปที่ทำงานเป็นเวลานานจะช้า เพราะแต่ละขั้นตอนสร้าง String ใหม่
StringBuilder ทำงานได้เร็วกว่า โดยต่ออักขระเข้าไป แล้วเรียกใช้ toString() เมื่อสิ้นสุด
public class Main {
public static void main(String[] args) {
String text = "H e l l o";
StringBuilder sb = new StringBuilder();
for (char c : text.toCharArray()) {
if (!Character.isWhitespace(c)) sb.append(c);
}
System.out.println(sb.toString());
}
}การลบช่องว่าง
ตัวกรองที่ใช้กันทั่วไปจะลบช่องว่าง แท็บ และการขึ้นบรรทัดใหม่ด้วย Character.isWhitespace
ให้เก็บอักขระทุกตัวที่ไม่ใช่ช่องว่าง เพื่อบีบข้อความให้กระชับติดกัน
public class Main {
public static void main(String[] args) {
String text = " J a v a ";
StringBuilder sb = new StringBuilder();
for (char c : text.toCharArray()) {
if (!Character.isWhitespace(c)) sb.append(c);
}
System.out.println(sb.toString());
}
}กรองแล้วนับ
คุณสามารถนำแนวคิดต่าง ๆ มารวมกันได้ โดยกรองให้เป็น String ที่สะอาดก่อน แล้วจึงวัดความยาว
ในที่นี้ เราจะนับเฉพาะตัวอักษรด้วยการกรองและอ่านค่า length()
public class Main {
public static void main(String[] args) {
String text = "a1b2c3";
StringBuilder sb = new StringBuilder();
for (char c : text.toCharArray()) {
if (Character.isLetter(c)) sb.append(c);
}
System.out.println(sb.length());
}
}การนับตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก
คุณสามารถติดตามตัวนับหลายตัวพร้อมกันได้ ในที่นี้ เราจะนับตัวอักษรพิมพ์ใหญ่และตัวอักษรพิมพ์เล็กแยกกัน
อักขระแต่ละตัวจะผ่านการตรวจสอบที่เป็นอิสระต่อกันสองครั้ง และตัวนับที่ตรงกับเงื่อนไขจะเพิ่มขึ้น
public class Main {
public static void main(String[] args) {
String text = "JavaCode";
int upper = 0, lower = 0;
for (char c : text.toCharArray()) {
if (Character.isUpperCase(c)) upper++;
if (Character.isLowerCase(c)) lower++;
}
System.out.println(upper + " " + lower);
}
}เหตุใดการกรองจึงสำคัญ
การนับและการกรองเป็นงานที่พบได้ทุกวัน เช่น การตรวจสอบรหัสผ่าน การทำความสะอาดข้อมูลนำเข้าของผู้ใช้ หรือการนับประเภทของอักขระ
รูปแบบการวนซ้ำและตรวจสอบแบบเดียวกันรองรับงานทั้งหมดนี้ เพียงเปลี่ยนเงื่อนไขให้ตรงกับเป้าหมาย
if (Character.isDigit(c)) {
count++;
}ตรวจสอบอย่างรวดเร็ว
ทดสอบความเข้าใจของคุณเกี่ยวกับการนับและการกรองอักขระ
ทบทวน
การนับใช้ตัวนับที่คุณเพิ่มค่าเมื่ออักขระผ่านการตรวจสอบ เช่น isDigit หรือ ==
การกรองจะสร้าง String ใหม่ที่เก็บไว้เฉพาะอักขระที่ต้องการ โดยควรใช้ StringBuilder เพื่อความเร็ว คุณสามารถเปลี่ยนเงื่อนไขเพื่อนับสระ ตัวอักษร ตัวเลข หรือลบช่องว่างได้
คำถามที่พบบ่อย
บทเรียน “การนับและกรองอักขระ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การนับและกรองอักขระ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การนับและกรองอักขระ”
งาน char ที่ใช้ได้จริง คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การนับและกรองอักขระ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม
ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ชนิดข้อมูลพื้นฐาน char
- เมธอดช่วยจัดการอักขระ
- การวนลูปผ่านอักขระ
- การนับและกรองอักขระ