java - 从变量字符串中获取单词部分

标签 java string stringtokenizer

我一直在实现一个应用程序来检索传入字符串参数中的单词,该字符串参数可能会有所不同,因为它是一个 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/

相关文章:

java - 升级到 spring 5.0.7.RELEASE 导致 parseStringValue 出现问题

string - 如何使用字符串作为 Golang 中 rand.Seed() 函数的输入?

python - 我怎样才能唯一地缩短字符串列表,使它们最多 x 个字符长

java - StringTokenizer 数组

java - 字符串标记器更改分隔符,不显示它

Java 使用流和 Lambda 表达式而不是迭代器

java - Java Netbeans Glassfish Web 应用程序中不存在此应用程序 (app_id)

java - Java 中的无限循环

java - Android RenderScript FinalizerWatchdogDaemon 致命异常

php - 在 PHP 中将字符串的每个单词大写?