Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何用一个词的一部分来表达整个词?_Java_String_Substring - Fatal编程技术网

Java 如何用一个词的一部分来表达整个词?

Java 如何用一个词的一部分来表达整个词?,java,string,substring,Java,String,Substring,例如: 我有这样一个字符串: String query = "....COD_OP = 1 AND USER_DATA_SIGNIN = ...." 我需要得到整个单词(“USER\u DATA\u sign”),当它有“\u DATA”部分时 在java中,是否可以反向使用某种子字符串?在这种情况下,我不知道如何获取“USER”部分。简单的实现,空检查留给您: for (String string : query.split(" ")) { if(string.con

例如: 我有这样一个字符串:

String query = "....COD_OP = 1 AND USER_DATA_SIGNIN = ...."
我需要得到整个单词(
“USER\u DATA\u sign”
),当它有
“\u DATA”
部分时


在java中,是否可以反向使用某种子字符串?在这种情况下,我不知道如何获取
“USER”
部分。

简单的实现,空检查留给您:

    for (String string : query.split(" ")) {
        if(string.contains("_DATA_"))
        {
            System.out.println(string); // USER_DATA_SIGNIN
            System.out.println(string.split("_")[0]); // USER
        }
    }

您可以使用负责Java中正则表达式机制的模式/匹配器类。您可以创建一个模式,该模式将表示前面和/或后面有
a-zA-Z0-9
字符(可由
\w
字符类表示)的单词,如

Pattern p = Pattern.compile("\\w*_DATA_\\w*");
Matcher m = p.matcher(text);
while(m.find()){
    System.out.println(m.group());
}

你的预期输出是什么?“用户数据签名”?你说“当它有
“\u数据”
部分时,我需要得到整个单词”,这意味着你想找到
用户数据签名
,但你说的是“在这种情况下,我想得到
“用户”
部分”。你能解释一下这里使用的逻辑吗?没错,在这种情况下,我想要完整的单词,即“用户数据签名”。我这么说是因为我知道如何获取字符串的右半部,但我不知道如何获取字符串的左半部。然后请更新您的问题以清除此混淆。谢谢!我不知道为什么我以前没有想过:PNo问题,通常最简单的解决方案就是最好的解决方案。很好的替代方案,也很好用,非常感谢!