在字符串中拆分零

Split zero in String

伙计们,我有 int 值解析为 string [],我应该写:


if (first element == 0)
 split it
return value without 0 at start.

For example I have 01, 02, 03, 04, 05, 06, 07, 08, 09, 10,... 20... 30..


所以在 return 中将拆分 0 的值,其中 0 是第一个元素,return 接下来是我:


1, 2, 3, 4, 5, 6, 7, 8, 9, 10,... 20... 30..


实际上我的日历需要它,我已经从中获取日期,但它 return 对我来说 01, 02, 03 等等。这是我的方法代码:


public String setCurrentCalendarDay() throws TestException, ParseException{
        if (!getPage().getSession().CanRun())
            throw new TestException(Page.InvalidStateMessage);
        String currentDate = "";
        Date date = new Date();
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        SimpleDateFormat formatter = new SimpleDateFormat("dd");
        currentDate = formatter.format(date);
        return currentDate;
    }

不确定您想要实现什么。但也许您正在寻找一种方法来从 String

中删除前导 0 个字符
String currentDate = "01";
System.out.println("currentDate = " + currentDate);
System.out.println("currentDate = " + currentDate.replaceFirst("^0*", ""));

输出

currentDate = 01
currentDate = 1

第一个选项是使用 new SimpleDateFormat("d") 而不是 ("dd"),这样您最少只有一位而不是两位。

第二个选项是使用像这样的正则表达式 return currentDate.replaceFirst("^0+(?!$)", "") 这样它就可以完全替换第一个 0

您是否考虑过使用 String.startsWith(String prefix)

来自 JavaDocs:

Returns: true if the character sequence represented by the argument is a prefix of the character sequence represented by this string; false otherwise. Note also that true will be returned if the argument is an empty string or is equal to this String object as determined by the equals(Object) method.

然后使用String.substring(int beginIndex)

别忘了检查数字是否真的等于 0。