为了清楚起见,我不是在寻找MIME类型.
假设我有以下输入: /path/to/file/foo.txt
我想要一种方法来打破这种输入,特别.txt是扩展.在Java中有没有内置的方法来做到这一点?我想避免编写自己的解析器.
我在分裂方面遇到了问题String.
我想String用一些分隔符拆分一个但不丢失该分隔符.
当我们somestring.split(String separator)在Java中使用方法时,它会拆分String但从中删除分隔符部分String.我不希望这种情况发生.
我想要如下结果:
String string1="Ram-sita-laxman";
String seperator="-";
string1.split(seperator);
Run Code Online (Sandbox Code Playgroud)
输出:
[Ram, sita, laxman]
Run Code Online (Sandbox Code Playgroud)
但我希望结果如下所示:
[Ram, -sita, -laxman]
Run Code Online (Sandbox Code Playgroud)
有没有办法获得这样的输出?
这与Java类似但不完全相同:使用反射实例化枚举
我有一个Map<Enum<?>, FooHandler>我想用来映射Enums(我不关心哪种类型,或者即使它们是同一类型,只要它们是枚举常量)到我的FooHandler班级.
我想使用我阅读的文本文件填充此地图.我可以让它工作,但我有两个警告我想绕过:
static private <E extends Enum<E>> E getEnum(String enumFullName) {
// see https://stackoverflow.com/questions/4545937/
String[] x = enumFullName.split("\\.(?=[^\\.]+$)");
if (x.length == 2)
{
String enumClassName = x[0];
String enumName = x[1];
try {
Class<E> cl = (Class<E>)Class.forName(enumClassName);
// #1
return Enum.valueOf(cl, enumName);
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
return null;
}
public void someMethod(String enumName, String fooHandlerName)
{
FooHandler fooHandler = getFooHandler(fooHandlerName);
Enum e = getEnum(enumName);
// …Run Code Online (Sandbox Code Playgroud) 我正在尝试从包含文件名或目录的字符串中提取子字符串.提取的子字符串应该是文件扩展名.我在网上做了一些搜索,发现我可以使用正则表达式来实现这一点.我发现这^\.[\w]+$是一个可以找到文件扩展名的模式.问题是我对正则表达式及其功能并不完全熟悉.
基本上如果我有一个像C:\Desktop\myFile.txt我想要正则表达式的字符串然后找到并创建一个仅包含的新字符串.txt