Remove the last chars of the Java String variable
一个Java字符串变量,其值为
1 |
我想删除最后四个字符,即
我想您要删除最后五个字符("."、'N'、'U'、'L'、'L'):
1 | path = path.substring(0, path.length() - 5); |
请注意您需要如何使用返回值-字符串是不可变的,因此
或者更安全一点:
1 2 3 | if (path.endsWith(".null")) { path = path.substring(0, path.length() - 5); } |
但是,我会努力把问题解决得更高一些。我猜您只得到了".null",因为其他一些代码正在这样做:
1 | path = name +"." + extension; |
。
其中,
(如问题注释中所述,您确实应该查看
1 2 3 4 5 | import org.apache.commons.lang3.StringUtils; // path ="http://cdn.gs.com/new/downloads/Q22010MVR_PressRelease.pdf.null" StringUtils.removeEnd(path,".null"); // path ="http://cdn.gs.com/new/downloads/Q22010MVR_PressRelease.pdf" |
1 | path = path.substring(0, path.length() - 5); |
我很惊讶地发现,所有其他答案(截至2013年9月8日)要么涉及到计算子字符串
我建议如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class Main { public static void main(String[] args) { String path ="file.txt"; String extension =".doc"; int position = path.lastIndexOf(extension); if (position!=-1) path = path.substring(0, position); else System.out.println("Extension:"+extension+" not found"); System.out.println("Result:"+path); } } |
。
如果未找到子字符串,则不会发生任何情况,因为没有要切断的内容。你得不到
如果要删除最后5个字符,可以使用:
1 | path.substring(0,path.length() - 5) |
(可能包含一个错误);)
如果要删除一些变量字符串:
1 | path.substring(0,path.lastIndexOf('yoursubstringtoremove)); |
。
(也可能包含一个错误);)
另一种方式:
1 | if (s.size > 5) s.reverse.substring(5).reverse |
。
顺便说一句,这是scala代码。可能需要在Java中使用括号。