我有一个未知长度的字符串str(但不是null)和给定的最大长度len,这必须适合。我想做的就是在len处剪切字符串。
我知道我可以使用
str.substring(0, Math.min(len, str.length()));
但这并不方便,如果我尝试编写这样的堆叠代码
code = str.replace(" ", "").left(len)
我知道我可以编写自己的函数,但我更喜欢现有的解决方案。Java 中是否存在现有的 left() 函数?
没有内置任何东西,但是 Apache commons 有 StringUtils 类,它有一个适合你的左函数。
如果您不想添加 StringUtils 库,您仍然可以按照您想要的方式使用它:
String string = (string.lastIndexOf(",") > -1 )?string.substring(0, string.lastIndexOf(",")): string;
使用拆分。
String str = "Result string Delimiter Right String";
System.out.println(str.split("Delimiter")[0].trim());
输出:“结果字符串”
不left()
,String
类中没有,您可以参考 API。但正如@Mark 所说,Apache有StringUtils
几种方法:leftPad()
、rightPad()
和. 你也可以检查这个: http: //www.jdocs.com/lang/2.1/org/apache/commons/lang/StringUtils.htmlcenter()
repeat()
将以下函数放在一个类中:
public static String getLeftString(String st,int length){
int stringlength=st.length();
if(stringlength<=length){
return st;
}
return st.substring((stringlength-length));
}
就我而言,我只想获取日期。
String s = "date:2021-01-01";
int n = s.length() - 10;
//10 是日期的长度
String result = s.substring(n);
结果将是“2021-01-01”;