我想在Eclipse中编写一个PlugIn。现在我从一个选定的项目中获得了一个带有路径的字符串:
C:/Users/mbauer/abcde/efghj/klmno...
现在我想在子串中剪切String,如下所示:
C:/Users/mbauer/
字符串应该在左边第3个斜杠后切断。其他用户的路径应该是动态的..
我试过了:
String getPath = getSelectedProjectPath(dialog);
System.out.println(getPath.substring(0, 15));
但是对于IndexOf 0和15,Path不再是动态的,如果名字较长的用户尝试使用该插件!
答案 0 :(得分:6)
我认为Path.subpath
会做你所描述的:
System.out.println(
FileSystems.getDefault().getPath(getPath).subpath(0, 3));
答案 1 :(得分:3)
像这样的正则表达式会起作用:
public static void main(String[] args) throws Exception {
String s1 = "C:/Users/mbauer/abcde/efghj/klmno";
System.out.println(s1.replaceAll("((.*?/){3}).*", "$1"));
}
O / P:C:/Users/mbauer/
答案 2 :(得分:3)
正如另一个答案中所建议的那样,您可以使用 java.nio.file 包中的Path
和Paths
。
以下是使用它的另一种方法:
Path path = Paths.get("C:/Users/mbauer/abcde/efghj/klmno");
System.out.println(path.subpath(0, 3).toAbsolutePath());
答案 3 :(得分:0)
例如,您可以使用indexOf()来搜索某些字符的索引。换句话说:你真的想做一些关于如何在字符串中搜索的先前研究;以及如何操纵它们。有很多文档可以解释这些事情。一种更高级的方法是使用Java正则表达式resp。 patterns
但请记住:并非所有eclipse用户都在使用Windows。你可能有很多人使用Mac或Linux;因此,您目前的做法很快就会打破。所以,而不是做低级别的字符串操作;你应该熟悉Java Paths之类的概念,以便理解你应该使用的抽象来创建一个合理的插件。
所以,严肃地说:这种字符串搜索/操作是绝对基本的东西。而创建eclipse插件确实是一个高级主题。含义:你是初学者;所以最好退一步,简单地学习更多关于Java语言的内容;在开始编写eclipse插件之前。因为机会是:鉴于你目前的知识,你将创建一个没有人愿意使用的糟糕插件。