Java 正则表达式分别去除字符串左侧、右侧的0

博客提到部分字符串为达特定效果会在左右侧补零,如10位定长字符串。在项目里,有时需去除字符串左右侧的0,仅保留一侧非零字符串,可借助正则表达式实现,并给出了相关代码。

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

部分字符串左侧或右侧会补零以此达到某种效果,如10位定长字符串 “0000001230” 和 “1234500000”,项目中有时需要去除左侧和右侧的0,只保留一侧非零字符串,可通过正则表达式去除0值,代码如下。

package com.test;

/**
 * @description
 * @date 2019/5/30 10:26
 */
public class Test1 {
    public static void main(String[] args) {
        // 去除字符串左侧的0值
        String str = "0000001230";
        String str1 = str.replaceAll("^(0+)", "");
        System.out.println(str1);  // 1230

		// 去除字符串右侧的0值
        String str2 = "1234500000";
        String str3 = str2.replaceAll("0*$", "");
        System.out.println(str3);  // 12345
    }
}


去除字符串两端的中括号(即左方括号 `[` 和右方括号 `]`),可以使用 Java 中的 `String.trim()` 方法结合正则表达式或其他工具来进行更精确的操作。下面详细介绍几种常见的方式: --- ### 方案 1: 手动判断并移除 如果确定只去除左右两侧的第一个 `[` 和最后一个 `]`,可以通过手动检测首尾字符是否为目标符号,并构建新的字符串。 #### 实现步骤: 1. 判断字符串是否以 `[` 开头。 2. 判断字符串是否以 `]` 结束。 3. 如果条件成立,则通过 `substring` 截取中间的内容。 #### 示例代码: ```java public class Main { public static void main(String[] args) { String str = "[Hello]"; if (str.startsWith("[") && str.endsWith("]")) { // 确保字符串确实由 [] 包裹 str = str.substring(1, str.length() - 1); } System.out.println(str); // 输出:"Hello" } } ``` --- ### 方案 2: 正则替换法 利用正则表达式匹配任意出现在开头或结尾的 `[ ]` 符号,并将其删除。 #### 实现思路: - 使用 `replaceAll()` 函数配合正则表达式 `\A\[|\]\Z` 来分别匹配左侧的 `[` 和右侧的 `]`。 #### 示例代码: ```java public class Main { public static void main(String[] args) { String str = "[[Java]]"; // 替换掉所有位于两段边缘位置的 [ ] str = str.replaceAll("\\A\\[|\\]\\Z", ""); System.out.println(str); // 输出:"[Java]" } } ``` > 注释解释:`\A\[` 表示匹配整个字符串最前面的那个左方括号;而 `\]\Z` 则是针对最后面的右边括号做处理。 --- ### 注意事项 1. **空串情况**:若原字符串仅为一对空的方框「[]」,那么运行上述方法后会变成空白字符串 ""。 2. **嵌套结构**:当遇到类似 「[[Test]]」这种深层次包裹的情况时,单纯依靠一次性的前后判定无法完全解决内部多余层次问题。 3. **异常捕获**:实际编码过程中应考虑到各种可能出现的数据格式错误状况,并加入适当的容错机制,比如非预期输入等。 --- ### 性能分析 对于简单任务来说,直接运用基本库函数往往足够满足需求而且易于理解维护;但对于复杂模式下的批量清理工作或是涉及更多种特殊标记清除的需求而言,采用正则表达式的灵活性显然更有优势但也稍微增加了计算成本。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值