如何去掉URI或URL中的起始斜杠?

如何去掉URI或URL中的起始斜杠?,url,path,uri,absolute-path,Url,Path,Uri,Absolute Path,我正在使用 URL res = this.getClass().getClassLoader().getResource(dictionaryPath); String path = res.getPath(); String path2 = path.substring(1); 因为getPath()方法的输出返回如下内容: /C:/Users/...... 我需要这个 C:/Users.... 我确实需要下面的地址,因为一些外部库拒绝使用开头的斜杠或开头的file:/或其他任何东西

我正在使用

URL res = this.getClass().getClassLoader().getResource(dictionaryPath);
String path = res.getPath();
String path2 = path.substring(1);
因为getPath()方法的输出返回如下内容:

 /C:/Users/......
我需要这个

 C:/Users....
我确实需要下面的地址,因为一些外部库拒绝使用开头的斜杠或开头的file:/或其他任何东西

我尝试了URL中几乎所有的方法,比如toString()toExternalPath()等,对URI也做了同样的尝试,但没有一个像我需要的那样返回它。(我完全不明白,为什么它一开始就保留斜杠)

在我的机器上只需擦除第一个字符就可以了。但是一个朋友尝试在linux上运行它,因为那里的地址不同,所以它不起作用


这样的问题应该怎么处理呢?

一旦得到字符串,您可能只需要格式化它

大概是这样的:


路径2=路径2[1:]

只要UNIX路径不应包含驱动器号,您可以尝试以下方法:

URL res = this.getClass().getClassLoader().getResource(dictionaryPath);
String path = res.getPath();
char a_char = text.charAt(2);
if (a_char==':') path = path.substring(1);

将URL转换为URI并在文件构造函数中使用:

URL res = this.getClass().getClassLoader().getResource(dictionaryPath);
File file = new File(res.toURI());
String fileName = file.getPath();

转换为URI,然后使用
path.get()


如果路径包含“:”,请去掉第一个字符:“看在上帝的份上……看在上帝的份上,如果你读了前三行,你会发现,我已经在做了,但这没有帮助,因为——为什么我要重复我自己,只要读这篇文章……你在无条件地做。不管我是不是要你这么做,只要“:”是存在的,你甚至可以进一步检查“:”尤其是在第三个位置。你确实编辑了评论,之前没有:”。下面的答案很简单。你读过这篇文章的前三行了吗?我正在使用它-我不能也不想使用它,因为这种态度在windows机器以外的机器上不起作用我相信一定存在一个比这个更优雅的解决方案。谢谢,我希望不同的OS不会出现其他情况。Path.get将来可能会被弃用,可能您仍然可以这样使用:String Path=Path.of(res.toURI()).toString();顺便说一句,(…)的路径只能从Java11获得
URL res = this.getClass().getClassLoader().getResource(dictionaryPath);
String path = Paths.get(res.toURI()).toString();