java如何从末尾拆分字符串
我有一个类似“test.test.test”….test的字符串,我需要访问这个字符串中的最后一个“test”字。请注意,字符串中“test”的数量是无限的。如果java有一个像phpjava如何从末尾拆分字符串,java,string,split,Java,String,Split,我有一个类似“test.test.test”….test的字符串,我需要访问这个字符串中的最后一个“test”字。请注意,字符串中“test”的数量是无限的。如果java有一个像phpexplode函数这样的方法,那么一切都是正确的,但是。我认为从绳子末端分开,可以解决我的问题。 有没有办法指定split方法的方向? 我知道这个问题的一个解决方案是: String parts[] = fileName.split("."); //for all parts, while a parts cont
explode
函数这样的方法,那么一切都是正确的,但是。我认为从绳子末端分开,可以解决我的问题。
有没有办法指定split
方法的方向?
我知道这个问题的一个解决方案是:
String parts[] = fileName.split(".");
//for all parts, while a parts contain "." character, split a part...
但我认为这是一个糟糕的解决方案。尝试使用字符串的lastIndexOf方法来创建子字符串:
String str = "almas.test.tst";
System.out.println(str.substring(str.lastIndexOf(".") + 1));
Output:
tst
我认为您可以使用
lastIndexOf(String str)
方法来实现此目的
String str = "test.test.test....test";
int pos = str.lastIndexOf("test");
String result = str.substring(pos);
注意:使用
\\.
,因为
在正则表达式中有特殊的含义(这是拆分
所期望的)。如果您只需要最后一个点,请使用lastIndexOf
找到它,然后使用子字符串
而不是拆分所有字符串。没有“.”的输入失败。请记住测试lastIndexOf(“.”)-1
@AnilMuppalla实际上,它并没有失败,而是返回整个单词,正如在没有找到分隔符时所预期的那样<代码>System.out.println(“没有任何点”。子字符串(“没有任何点”。lastIndexOf(“.”+1));-->没有任何点