我有一个字符串,我需要删除所有提到的标点符号和空格。我的代码如下:
const Root = () => (
<Provider store={store}>
<Router
history={browserHistory}
routes={routes}
onReadyStateChange={readyState => {
console.log(99, readyState)
if (!readyState.done) store.dispatch(toggleLoading(true))
else store.dispatch(toggleLoading(false))
}}
render={applyRouterMiddleware(useRelay)}
environment={Relay.Store}
/>
</Provider>
)
但是,我得到一些空白的元素。输出是:
String s = "s[film] fever(normal) curse;";
String[] spart = s.split("[,/?:;\\[\\]\"{}()\\-_+*=|<>!`~@#$%^&\\s+]");
System.out.println("spart[0]: " + spart[0]);
System.out.println("spart[1]: " + spart[1]);
System.out.println("spart[2]: " + spart[2]);
System.out.println("spart[3]: " + spart[3]);
System.out.println("spart[4]: " + spart[4]);
我想要的输出是:
spart[0]: s
spart[1]: film
spart[2]:
spart[3]: fever
spart[4]: normal
答案 0 :(得分:2)
试试这个:
public static void main(String[] args) {
String s = "s[film] fever(normal) curse;";
String[] spart = s.split("[,/?:;\\[\\]\"{}()\\-_+*=|<>!`~@#$%^&\\s]+");
for (String string : spart) {
System.out.println("'"+string+"'");
}
}
输出:
's'
'film'
'fever'
'normal'
'curse'
答案 1 :(得分:1)
我相信这是因为你在那里有一个Greedy quantifier的空间。我认为你也必须使用加号的转义序列。
答案 2 :(得分:1)
String spart = s.replaceAll( "\\W", " " ).split(" +");