我一直在实现一个应用程序来检索传入字符串参数中的单词,该字符串参数可能会有所不同,因为它是一个 URL,但几乎所有传入 url 的模式都是相同的。例如我可以:
GET /com.myapplication.v4.ws.monitoring.ModuleSystemMonitor HTTP/1.1
或
GET /com.myapplication.filesystem.ws.ModuleFileSystem/getIdFolders/jsonp?idFolder=idFis1&callback=__gwt_jsonp__.P0.onSuccess&failureCallback=__gwt_jsonp__.P0.onFailure HTTP/1.1
所以无论如何,我想提取出以Module开头的单词,例如我想获取的第一个传入参数:ModuleSystemMonitor。对于第二个,我想得到这个词:ModuleFileSystem。
这是要求,除了这个之外,我不能做任何其他事情:只是一个接收一行并尝试提取我提到的单词的方法:ModuleSystemMonitor 和 ModuleFileSystem。
我一直在考虑使用 StringTokenizer
类或 String#split
方法,但我不确定它们是否是最佳选择。我尝试过,很容易使用 indexOf 得到以 Module 开头的单词,但是如果在某些情况下它带有像第一个示例那样的空格,或者在第二个示例中带有“/”(斜杠),则如何剪切该单词。我知道我可以制作一个“if”语句,并在它是空格或斜线时剪切它,但我想知道是否有另一种方法可以更加动态。
预先感谢您的时间和帮助。谨致问候。
最佳答案
我不确定这是最好的解决方案,但你可以尝试一下:
String[] tmp = yourString.Split("\\.|/| ");
for (int i=0; i< tmp.length(); i++) {
if (tmp[i].matches("^Module.*")) {
return tmp[i];
}
}
return null;
关于java - 从变量字符串中获取单词部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16340499/