โปรแกรมสกัดข้อความจากสตริงภาษา Java
โจทย์
ให้เขียนโปรแกรมที่รับข้อความ (string) จากผู้ใช้ แล้วตรวจสอบความยาวของข้อความตามเงื่อนไขต่อไปนี้:
- ถ้าความยาวของข้อความหารด้วย 2 และ 3 ลงตัว - ให้สกัด 6 ตัวอักษรแรกและ 6 ตัวอักษรสุดท้าย
- ถ้าความยาวของข้อความหารด้วย 2 ลงตัว - ให้สกัด 2 ตัวอักษรแรกและ 2 ตัวอักษรสุดท้าย
- ถ้าความยาวของข้อความหารด้วย 3 ลงตัว - ให้สกัด 3 ตัวอักษรแรกและ 3 ตัวอักษรสุดท้าย
จากนั้นให้แสดงผลข้อความที่สกัดได้
โค้ด
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String text = scanner.nextLine();
int textLength = text.length();
String firstPart = "";
String lastPart = "";
if (textLength % 6 == 0) {
firstPart = text.substring(0, 6);
lastPart = text.substring(textLength - 6, textLength);
} else if (textLength % 3 == 0) {
firstPart = text.substring(0, 3);
lastPart = text.substring(textLength - 3, textLength);
} else if (textLength % 2 == 0) {
firstPart = text.substring(0, 2);
lastPart = text.substring(textLength - 2, textLength);
}
String finalWord = firstPart + lastPart;
System.out.println("Extracted Text: " + finalWord);
}
}คำอธิบาย
ขั้นตอนที่ 1: นำเข้าคลาสที่จำเป็น
import java.util.Scanner;ในบรรทัดนี้ เรานำเข้าคลาส Scanner จากแพ็คเกจ java.util ซึ่งจะช่วยให้เราสามารถรับข้อมูลจากผู้ใช้ได้
ขั้นตอนที่ 2: สร้างคลาสหลักและเมธอด main
public class Main {
public static void main(String[] args) {
// โค้ดหลักจะอยู่ที่นี่
}
}นี่คือโครงสร้างพื้นฐานของโปรแกรม Java โดยมีคลาสชื่อ Main และเมธอด main ซึ่งเป็นจุดเริ่มต้นของโปรแกรม
ขั้นตอนที่ 3: รับข้อความจากผู้ใช้
Scanner scanner = new Scanner(System.in);
String text = scanner.nextLine();ในขั้นตอนนี้ โปรแกรมจะรอให้ผู้ใช้พิมพ์ข้อความเข้ามา เมื่อผู้ใช้กด Enter โปรแกรมจะเก็บข้อความนั้นไว้ในตัวแปรชื่อ text
ขั้นตอนที่ 4: นับความยาวของข้อความ
int textLength = text.length();โปรแกรมจะนับว่าข้อความที่ผู้ใช้พิมพ์เข้ามามีความยาวกี่ตัวอักษร แล้วเก็บไว้ในตัวแปรชื่อ textLength
ขั้นตอนที่ 5: ตรวจสอบเงื่อนไขและสกัดข้อความ
String firstPart = "";
String lastPart = "";
if (textLength % 6 == 0) {
firstPart = text.substring(0, 6);
lastPart = text.substring(textLength - 6, textLength);
} else if (textLength % 3 == 0) {
firstPart = text.substring(0, 3);
lastPart = text.substring(textLength - 3, textLength);
} else if (textLength % 2 == 0) {
firstPart = text.substring(0, 2);
lastPart = text.substring(textLength - 2, textLength);
}ในขั้นตอนนี้ โปรแกรมจะตรวจสอบความยาวของข้อความตามเงื่อนไขต่อไปนี้:
- ถ้าความยาวของข้อความหารด้วย 6 ลงตัว (ไม่มีเศษ):
- สกัด 6 ตัวอักษรแรกเก็บไว้ใน
firstPart - สกัด 6 ตัวอักษรสุดท้ายเก็บไว้ใน
lastPart
- ถ้าความยาวของข้อความหารด้วย 3 ลงตัว (ไม่มีเศษ):
- สกัด 3 ตัวอักษรแรกเก็บไว้ใน
firstPart - สกัด 3 ตัวอักษรสุดท้ายเก็บไว้ใน
lastPart
- ถ้าความยาวของข้อความหารด้วย 2 ลงตัว (ไม่มีเศษ):
- สกัด 2 ตัวอักษรแรกเก็บไว้ใน
firstPart - สกัด 2 ตัวอักษรสุดท้ายเก็บไว้ใน
lastPart
ขั้นตอนที่ 6: รวมข้อความที่สกัดได้
String finalWord = firstPart + lastPart;โปรแกรมจะนำข้อความที่สกัดได้จากส่วนหน้าและส่วนหลังมาต่อกัน แล้วเก็บไว้ในตัวแปรชื่อ finalWord
ขั้นตอนที่ 7: แสดงผลลัพธ์
System.out.println("Extracted Text: " + finalWord);สุดท้าย โปรแกรมจะแสดงข้อความที่สกัดได้ออกมาทางหน้าจอ
ตัวอย่างการทำงานของโปรแกรม
- กรณีที่ข้อความยาว 12 ตัวอักษร (หารด้วย 6 ลงตัว):
- ข้อความที่ป้อน: “HelloWorldJava”
- ผลลัพธ์: “HelloJava”
- กรณีที่ข้อความยาว 9 ตัวอักษร (หารด้วย 3 ลงตัว):
- ข้อความที่ป้อน: “JavaCoder”
- ผลลัพธ์: “Javder”
- กรณีที่ข้อความยาว 8 ตัวอักษร (หารด้วย 2 ลงตัว):
- ข้อความที่ป้อน: “CodeTime”
- ผลลัพธ์: “Come”
- กรณีที่ข้อความยาว 7 ตัวอักษร (ไม่ตรงกับเงื่อนไขใดเลย):
- ข้อความที่ป้อน: “Program”
- ผลลัพธ์: "" (ข้อความว่าง เพราะไม่มีการสกัดข้อความ)