Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在两个字符串之间提取字符串_Java_String_Substr_Substring - Fatal编程技术网

Java 在两个字符串之间提取字符串

Java 在两个字符串之间提取字符串,java,string,substr,substring,Java,String,Substr,Substring,我有一根这样的绳子 String str = "www.google.com/..../upload/FileName.zip 我想从上面的字符串中提取字符串“FileName”。我尝试了substr()方法,但找不到任何解决方案。您可以尝试此方法 String str = "www.google.com/..../upload/FileName.zip"; File file=new File(str); String fileName=file.getName();

我有一根这样的绳子

String str = "www.google.com/..../upload/FileName.zip
我想从上面的字符串中提取字符串“FileName”。我尝试了substr()方法,但找不到任何解决方案。

您可以尝试此方法

    String str = "www.google.com/..../upload/FileName.zip";
    File file=new File(str);
    String fileName=file.getName();// now fileName=FileName.zip
    System.out.println(fileName.split("\\.")[0]);
输出:

    FileName
你可以试试这个

    String str = "www.google.com/..../upload/FileName.zip";
    File file=new File(str);
    String fileName=file.getName();// now fileName=FileName.zip
    System.out.println(fileName.split("\\.")[0]);
输出:

    FileName

这就是你要找的吗

  String lastPart= yourUrl.substring(yourUrl.lastIndexOf('/')+1, yourUrl.length());
  String fileName = lastPart.substring(0, lastPart.lastIndexOf('.'));
考虑到给定的格式不会改变


这就是你要找的吗

  String lastPart= yourUrl.substring(yourUrl.lastIndexOf('/')+1, yourUrl.length());
  String fileName = lastPart.substring(0, lastPart.lastIndexOf('.'));
考虑到给定的格式不会改变

试试这个

String str = "www.google.com/..../upload/FileName.zip";
    String  str1[] = str.split("/");
    String file=str1[str1.length-1];
    String fileName=file.substring(0, file.lastIndexOf("."));
    System.out.println(fileName);
输出

FileName
试试这个

String str = "www.google.com/..../upload/FileName.zip";
    String  str1[] = str.split("/");
    String file=str1[str1.length-1];
    String fileName=file.substring(0, file.lastIndexOf("."));
    System.out.println(fileName);
输出

FileName

要获取最后一条斜线和点之间的部分,请执行以下操作:

String filename = str.replaceAll(".*?(?:/(\\w+)\\.\\w+$)?", "$1");

此正则表达式添加了一些特殊的调料,如果找不到目标,则通过使目标可选和前导表达式不情愿来返回空白。

要获取最后一个斜杠和点之间的部分:

String filename = str.replaceAll(".*?(?:/(\\w+)\\.\\w+$)?", "$1");

这个正则表达式添加了一些特殊的调料,如果找不到目标,则通过使目标为可选的且前导表达式不情愿来返回空白。

为什么您的尝试失败了?我认为substr()方法需要索引。但是我找不到如何使用substr()来提取两个不同字符串之间的字符串。
string#lastIndexOf
方法是您的朋友。为什么您的尝试失败了?我认为substr()方法需要索引。但是我找不到如何使用substr()来提取两个不同字符串之间的字符串。
string#lastIndexOf
方法是您的朋友。是的,此格式不会更改。然后它可以工作,并通过单击该链接进行演示。是的,此格式不会更改。然后它工作并通过单击该链接进行演示。不需要锚吗?@Quincunx yeah thx-添加了end anchor$。不需要起锚。这正是我想的方法;我比较喜欢正则表达式。这是清楚的。我很容易知道它在做什么。另一方面,对于其他一些答案,我发现不太清楚。@quincunx我在正则表达式中添加了一些功夫,因此如果找不到文件名,它将返回空白。对于这种行为,非正则表达式的方法不可能做到如此简洁。@Quincunx你可以通过向上投票的方式捐赠正则表达式fu代表-我将尝试将低投票率(但相当好的imho)的答案转化为“不需要锚吗?”@Quincunx yeah thx-添加了end anchor$。不需要起锚。这正是我想的方法;我比较喜欢正则表达式。这是清楚的。我很容易知道它在做什么。另一方面,对于其他一些答案,我发现不太清楚。@quincunx我在正则表达式中添加了一些功夫,因此如果找不到文件名,它将返回空白。对于这种行为,非正则表达式的方法不可能如此简洁。@Quincunx你可以通过向上投票的方式捐赠正则表达式fu代表-我将尝试将投票率低(但很好的imho)的答案变成一个简单的答案