Java,String类中的trim()方法

本文通过示例详细解析了 Java 中 String 类的 trim() 方法的功能。不仅限于去除半角空格,该方法还能移除字符串前后所有小于等于半角空格的 Unicode 字符。文章还提供了一个测试函数来验证这一点,并列出了这些特殊字符对应的 Unicode 编码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class TestStringTrim {

    /**
     * 主函数。
     */
    public static void main(String[] args) {

        // 测试函数。
        testStringTrim();
    }

    /**
     * 了解String类的trim函数(Jdk 1.7)。
     * 一般情况下大家理解的是:
     *   去掉对象字符串前后的半角空格。
     * 其实不然:
     *   去掉的是对象字符串前后的
     *   (在Unicode编码里 <= 半角空格的所有字符)
     */
    private static void testStringTrim() {

        // Unicode编码里0到32的字符都会被去掉。
        System.out.println(((char) 0 + "0" + (char) 0 ).trim());
        System.out.println(((char) 1 + "1" + (char) 1 ).trim());
        System.out.println(((char) 2 + "2" + (char) 2 ).trim());
        System.out.println(((char) 3 + "3" + (char) 3 ).trim());
        System.out.println(((char) 4 + "4" + (char) 4 ).trim());
        System.out.println(((char) 5 + "5" + (char) 5 ).trim());
        System.out.println(((char) 6 + "6" + (char) 6 ).trim());
        System.out.println(((char) 7 + "7" + (char) 7 ).trim());
        System.out.println(((char) 8 + "8" + (char) 8 ).trim());
        System.out.println(((char) 9 + "9" + (char) 9 ).trim());
        System.out.println(((char) 10 + "10" + (char) 10 ).trim());
        System.out.println(((char) 11 + "11" + (char) 11 ).trim());
        System.out.println(((char) 12 + "12" + (char) 12 ).trim());
        System.out.println(((char) 13 + "13" + (char) 13 ).trim());
        System.out.println(((char) 14 + "14" + (char) 14 ).trim());
        System.out.println(((char) 15 + "15" + (char) 15 ).trim());
        System.out.println(((char) 16 + "16" + (char) 16 ).trim());
        System.out.println(((char) 17 + "17" + (char) 17 ).trim());
        System.out.println(((char) 18 + "18" + (char) 18 ).trim());
        System.out.println(((char) 19 + "19" + (char) 19 ).trim());
        System.out.println(((char) 20 + "20" + (char) 20 ).trim());
        System.out.println(((char) 21 + "21" + (char) 21 ).trim());
        System.out.println(((char) 22 + "22" + (char) 22 ).trim());
        System.out.println(((char) 23 + "23" + (char) 23 ).trim());
        System.out.println(((char) 24 + "24" + (char) 24 ).trim());
        System.out.println(((char) 25 + "25" + (char) 25 ).trim());
        System.out.println(((char) 26 + "26" + (char) 26 ).trim());
        System.out.println(((char) 27 + "27" + (char) 27 ).trim());
        System.out.println(((char) 28 + "28" + (char) 28 ).trim());
        System.out.println(((char) 29 + "29" + (char) 29 ).trim());
        System.out.println(((char) 30 + "30" + (char) 30 ).trim());
        System.out.println(((char) 31 + "31" + (char) 31 ).trim());
        System.out.println(((char) 32 + "32" + (char) 32 ).trim());
        System.out.println(((char) 33 + "33" + (char) 33 ).trim());

        // 输出结果
        /*
        0
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        28
        29
        30
        31
        32
        !33!
        */
    }

}

附上Unicode码

0    NUL     空字符(Null)
1    SOH     标题开始
2    STX     本文开始
3    ETX     本文结束
4    EOT     传输结束
5    ENQ     请求
6    ACK     确认回应
7    BEL     响铃
8    BS     退格
9    HT     水平定位符号
10    LF     换行键
11    VT     垂直定位符号
12    FF     换页键
13    CR     Enter键
14    SO     取消变换(Shift out)
15    SI     启用变换(Shift in)
16    DLE     跳出数据通讯
17    DC1     设备控制一(XON 激活软件速度控制)
18    DC2     设备控制二
19    DC3     设备控制三(XOFF 停用软件速度控制)
20    DC4     设备控制四
21    NAK     确认失败回应
22    SYN     同步用暂停
23    ETB     区块传输结束
24    CAN     取消
25    EM     连接介质中断
26    SUB     替换
27    ESC     退出键
28    FS     文件分区符
29    GS     组群分隔符
30    RS     记录分隔符
31    US     单元分隔符

不说点什么???

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值