2013-04-24 59 views
0

给出这个字符串http://verylongurlverylonngurl/image.jpg &我想在最后一个“/”之前切掉所有部分。例如,我想删除上面字符串的部分http://verylongurlverylonngurl/。结果将是“image.jpg”。在Java字符串中,如何仅用1行代码剪切一部分字符串(可能使用Regex)?

我不得不削减的字符串“标签” &代码来削减该字符串必须是超()关键字& super关键字里面必须是在构造函数中的第一条语句。 Loook这段代码:

private class TextShortenedCheckBox extends CheckBox{ 
     private String originalText; 
     public TextShortenedCheckBox(String label, int visibleLength){ 
      super(label.substring(label.length()-9,label.length()-1)); 


      originalText=label; 

     } 
     @Override 
     public String getText(){ 
      return originalText; 
     } 
    } 

看代码:label.substring(label.length()-9,label.length()-1)这段代码给的结果,但不能申请其他变量字符串。

因此,如何通过1行代码来剪切一部分字符串,以便我可以将该代码放入super()中。也许我们必须使用正则表达式或其他东西?

回答

5

str = str.substring(str.lastIndexOf("/") + 1); 
+1

是的,比正则表达式要好得多。一个小提示:你是一个人,并将包括领先的斜线。 – 2013-04-24 09:04:37

+0

@MarkoTopolnik:谢谢。不是100%肯定,也懒得实际运行代码;) – jlordo 2013-04-24 09:06:22

+0

Thax你是领导者,它很简单完美。 – Tom 2013-04-24 09:07:38

1

您可以使用哪些lastIndexOf('/')

返回此字符串指定字符最后一次出现处的索引。对于范围从0 to 0xFFFF(含)的ch的值,返回的索引(以Unicode代码为单位)是最大值k,因此:this.charAt(k) == ch为真。对于ch的其他值,它是最大值k,因此:this.codePointAt(k) == ch为真。无论哪种情况,如果此字符串中不存在此类字符,则返回-1。字符串从最后一个字符开始向后搜索。

1

试试这个:

String str ="http://verylongurlverylonngurl/image.jpg"; 
str = str.substring(str.lastIndexOf("/")+1); 
System.out.println(str); 

输出:

image.jpg 
相关问题