我需要在创建文件时将无效字符映射到其他字符,如“/”到“_”(正斜杠到下划线),因为文件名不允许放斜线,问题,双引号等。
假设我有
String name = "Message Test - 22/10/2016";
现在我想通过使用上面的字符串来编写一个文件,但由于斜杠它会产生错误。
所以我想在编写文件时将所有无效字符的斜杠映射到任何其他字符。写完之后,我需要阅读文件的所有名称。显示在页面上。
我如何映射字符,因此文件名称
Message_Test_-_22-10-2016
当我在网上展示时,我需要将文件名作为原始名称返回,如
Message Test - 22/10/2016
我正在使用java。任何人都可以帮助我,我怎么能开始编写这种方法或者是否有任何API或者是否有任何其他方法。
我不想将数据库用于与原始文件名相关的别名文件名
答案 0 :(得分:0)
我需要将无效字符映射到其他字符,如" /"到" _"
它不够健壮,因为它假设你从不在文件名中使用_
字符
如果您使用它,如何知道存储为my_file
的文件是否应在您的应用中显示为my_file
或my/file
。
我认为更可靠的方法是拥有一个文件(例如JSON或XML),它存储每个文件的两个属性:
它需要一个额外的文件,但它使事情变得更加清晰。
答案 1 :(得分:0)
您可以使用地图存储映射:
E.g。
Map<Character,Character> map = new HashMap<Character,Character>();
map.put('/','_');
然后替换1遍历中的字符:
for(int i=0;i<str.length();i++){
char c = str.charAt(i);
if( map.containsKey(c) )
str.replace(c,map.get(c));
}