Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

โปรแกรม Java ลบศูนย์นำหน้า (Leading Zeros) จากสตริง


บทนำ

ในบทความนี้ เราจะเรียนรู้วิธีการลบศูนย์นำหน้า (Leading zeros) จากสตริง สตริงที่มีศูนย์นำหน้าหรือ 1 นำหน้าสามารถลบได้โดยใช้ iterator แบบง่ายและแทนที่ศูนย์ด้วยช่องว่าง

ตัวอย่างการทำงาน

อินพุทตัวอย่าง:

Input string: 00000445566

เอาต์พุทที่คาดหวัง:

Result: 445566

อัลกอริทึม

ขั้นตอนที่ 1 - เริ่มต้น
ขั้นตอนที่ 2 - ประกาศสตริง input_string และออบเจ็กต์ StringBuffer string_buffer
ขั้นตอนที่ 3 - กำหนดค่า
ขั้นตอนที่ 4 - วนลูป while ตรวจสอบตัวอักษรที่ดัชนี i เป็น '0' หรือไม่ เพิ่ม i จนกว่าจะเจอตัวที่ไม่ใช่ศูนย์
ขั้นตอนที่ 5 - ใช้ StringBuffer.replace(0, i, "") ลบศูนย์นำหน้า
ขั้นตอนที่ 6 - แสดงผลลัพธ์
ขั้นตอนที่ 7 - จบการทำงาน

ตัวอย่างที่ 1: เขียนในฟังก์ชัน main โดยตรง

import java.util.Arrays;
import java.util.List;

public class RemoveZero {
    public static void main(String[] args) {
        System.out.println("Required packages have been imported");
        String input_string = "00000445566";
        System.out.println("\nThe string is defined as: " + input_string);
        int i = 0;
        while (i < input_string.length() && input_string.charAt(i) == '0') {
            i++;
        }
        StringBuffer string_buffer = new StringBuffer(input_string);
        string_buffer.replace(0, i, "");
        input_string = string_buffer.toString();
        System.out.println(input_string);
    }
}

เอาต์พุท

Required packages have been imported
The string is defined as: 00000445566
445566

ตัวอย่างที่ 2: ใช้เมธอดแยก (Object-Oriented Style)

import java.util.Arrays;
import java.util.List;

public class RemoveZero {
    public static String remove_zero(String input_string) {
        int i = 0;
        while (i < input_string.length() && input_string.charAt(i) == '0') {
            i++;
        }
        StringBuffer string_buffer = new StringBuffer(input_string);
        string_buffer.replace(0, i, "");
        return string_buffer.toString();
    }
    
    public static void main(String[] args) {
        System.out.println("Required packages have been imported");
        String input_string = "00000445566";
        System.out.println("\nThe string is defined as: " + input_string);
        input_string = remove_zero(input_string);
        System.out.println(input_string);
    }
}

เอาต์พุท

Required packages have been imported
The string is defined as: 00000445566
445566

วิธีอื่นๆ ที่ทันสมัยกว่า:

// ใช้ regex (Java 1.4+)
String result = input_string.replaceFirst("^0+", "");

// ใช้ String.stripLeading() (Java 11+) - ลบ whitespace นำหน้า
// สำหรับศูนย์เฉพาะ: ใช้ regex ด้านบน

// ใช้ Apache Commons Lang
String result = StringUtils.stripStart(input_string, "0");

// แปลงเป็นตัวเลข (ถ้าต้องการค่าตัวเลข)
long value = Long.parseLong(input_string); // "00000445566" → 445566
String result = String.valueOf(value); // "445566"

กรณีพิเศษ: สตริง "0000" → ผลลัพธ์ควรเป็น "" (ว่าง) หรือ "0" ขึ้นอยู่กับความต้องการ