【发布时间】:2011-08-01 07:16:10
【问题描述】:
我想将字符串"test/" 和"/go" 合并为"test/go"。
我该怎么做?
【问题讨论】:
标签: java
我想将字符串"test/" 和"/go" 合并为"test/go"。
我该怎么做?
【问题讨论】:
标签: java
只使用java.io.File 最简单的方法是:
String combined_path = new File("test/", "/go").getPath();
【讨论】:
FilenameUtils.normalize() from Apache Commons IO 做你想做的事。
示例:
FilenameUtils.normalize("foo/" + "/bar");
返回字符串"foo/bar"
【讨论】:
附加两个字符串并将//替换为/,如下所示
"test//go".replace("//", "/")
输出:test/go
【讨论】:
String test = "test/";
String go = "/go";
String result = test + go.substring(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"), '/'));
输出:
测试/开始
这个解决方案
【讨论】:
假设这是一个与文件名有关的问题,不如看看apache-commons-io 及其FilenameUtils 类
final String test = "test/";
final String go ="/go";
System.out.println(FilenameUtils.normalize(test + go));
窗口输出:
test\go
normalize 方法会为您做更多的事情,例如在 Windows 系统上将 '/' 更改为 '\'。
顺便说一句,恭喜你的声誉得分几乎只是问问题:-)
【讨论】:
更简单:
"test/" + "." + "/go"
【讨论】: