我想将字符串"test/"
和"/go"
合并为"test/go"
。
我该怎么做?
答案 0 :(得分:11)
仅使用java.io.File
最简单的方法是:
String combined_path = new File("test/", "/go").getPath();
答案 1 :(得分:6)
FilenameUtils.normalize()
的Apache Commons IO可以满足您的需求。
示例:
FilenameUtils.normalize("foo/" + "/bar");
返回字符串"foo/bar"
答案 2 :(得分:5)
public static String combine (String path1, String path2)
{
File file1 = new File(path1);
File file2 = new File(file1, path2);
return file2.getPath();
}
答案 3 :(得分:4)
附加两个字符串并将//
替换为/
,如下所示
"test//go".replace("//", "/")
输出:test/go
答案 4 :(得分:2)
String test = "test/";
String go = "/go";
String result = test + go.substring(1);
答案 5 :(得分:1)
假设这是一个与文件名相关的问题,而不是查看apache-commons-io及其FilenameUtils类
final String test = "test/";
final String go ="/go";
System.out.println(FilenameUtils.normalize(test + go));
在Windows上输出:
test\go
normalize方法将为您做更多事情,例如在Windows系统上将'/'更改为'\'。
顺便提一句,祝贺你的声望得分几乎只是提问: - )
答案 6 :(得分:1)
这是一个Guava方法,在从项目的开头和结尾修剪此角色的所有实例后,将Iterable<String>
个项目与char
连接起来:
public static String joinWithChar(final Iterable<String> items,
final char joinChar){
final CharMatcher joinCharMatcher = CharMatcher.is(joinChar);
return Joiner.on('/').join(
Iterables.transform(items, new Function<String, String>(){
@Override
public String apply(final String input){
return joinCharMatcher.trimFrom(input);
}
}));
}
<强>用法:强>
System.out.println(joinWithChar(Arrays.asList("test/", "/go"), '/'));
<强>输出:强>
测试/去
此解决方案
答案 7 :(得分:-2)
更简单:
"test/" + "." + "/go"