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

เมธอดใหม่ที่เพิ่มในคลาส String ของ Java 9 มีอะไรบ้าง

String เป็นคลาส immutable ใน Java ใน Java 9 เพิ่มเมธอดใหม่ 2 ตัวคือ chars() และ codePoints() ทั้งคู่คืนค่า IntStream object

1) chars()

เมธอด chars() ของคลาส String คืนสตรีมของ int ที่ zero-extend ค่า char จาก sequence นี้

ไวยากรณ์

public IntStream chars()

ตัวอย่าง

import java.util.stream.IntStream;

public class StringCharsMethodTest {
    public static void main(String args[]) {
        String str = "Welcome to TutorialsPoint";
        IntStream intStream = str.chars();
        intStream.forEach(x -> System.out.printf("-%s", (char)x));
    }
}

ผลลัพธ์

-W-e-l-c-o-m-e- -t-o- -T-u-t-o-r-i-a-l-s-P-o-i-n-t

2) codePoints()

เมธอด codePoints() คืนสตรีมของค่า code point จาก sequence นี้

ไวยากรณ์

public IntStream codePoints()

ตัวอย่าง

import java.util.stream.IntStream;

public class StringCodePointsMethodTest {
    public static void main(String args[]) {
        String str = "Welcome to Tutorix";
        IntStream intStream = str.codePoints();
        intStream.forEach(x -> System.out.print(new StringBuilder().appendCodePoint(x)));
    }
}

ผลลัพธ์

Welcome to Tutorix

ความแตกต่างระหว่าง chars() และ codePoints()

เมธอดคืนค่าเหมาะสำหรับ
chars()IntStream ของ char values (16-bit)BMP characters (Basic Multilingual Plane)
codePoints()IntStream ของ Unicode code points (32-bit)ทุก Unicode รวม supplementary characters

สำหรับข้อความภาษาไทยหรือ emoji ควรใช้ codePoints() เพื่อความถูกต้อง