18

我有一个未知长度的字符串str(但不是null)和给定的最大长度len,这必须适合。我想做的就是在len处剪切字符串。

我知道我可以使用

str.substring(0, Math.min(len, str.length()));

但这并不方便,如果我尝试编写这样的堆叠代码

code = str.replace(" ", "").left(len)

我知道我可以编写自己的函数,但我更喜欢现有的解决方案。Java 中是否存在现有的 left() 函数?

4

6 回答 6

18

没有内置任何东西,但是 Apache commons 有 StringUtils 类,它有一个适合你的函数。

于 2013-06-26T10:44:37.063 回答
5

如果您不想添加 StringUtils 库,您仍然可以按照您想要的方式使用它:

String string = (string.lastIndexOf(",") > -1 )?string.substring(0, string.lastIndexOf(",")): string;
于 2015-05-27T16:36:01.770 回答
2

使用拆分。

String str = "Result string Delimiter Right String";
System.out.println(str.split("Delimiter")[0].trim());

输出:“结果字符串”

于 2021-04-04T08:34:57.070 回答
1

left()String类中没有,您可以参考 API。但正如@Mark 所说,Apache有StringUtils几种方法:leftPad()rightPad()和. 你也可以检查这个: http: //www.jdocs.com/lang/2.1/org/apache/commons/lang/StringUtils.htmlcenter()repeat()

于 2013-06-26T10:55:21.490 回答
-1

将以下函数放在一个类中:

 public static String getLeftString(String st,int length){
    int stringlength=st.length();

    if(stringlength<=length){
        return st;
    }

    return st.substring((stringlength-length));
}
于 2018-06-22T18:20:34.277 回答
-1

就我而言,我只想获取日期。

String s = "date:2021-01-01";

int n = s.length() - 10; //10 是日期的长度

String result = s.substring(n);

结果将是“2021-01-01”;

于 2022-01-10T01:55:04.997 回答