Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.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
如果单词有';w';信。JAVA_Java_Regex - Fatal编程技术网

如果单词有';w';信。JAVA

如果单词有';w';信。JAVA,java,regex,Java,Regex,我有一堆单词,我需要得到其中有“w”字母的最长单词。我是这样做的 public static boolean longestWWord(String s) { boolean hasw=false; for(int i = 0; i < s.length(); i++) { if(s.charAt(i)=='w') { hasw = true; } } return hasw;

我有一堆单词,我需要得到其中有“w”字母的最长单词。我是这样做的

public static boolean longestWWord(String s)
{
    boolean hasw=false;
    for(int i = 0; i < s.length(); i++)
    {
        if(s.charAt(i)=='w')
        {
            hasw = true;
        }
    }
    return hasw;
}
    System.out.println("Word with maximum 'w' chareckters : ");
    int counter =0;
    String word="";
    for ( String ss : arr) {
        if(longestWWord(ss)){
            if(ss.length()>counter)
            {
                counter = ss.length();
                word = ss;
            }
        }
    }
    System.out.println(word);
public静态布尔longestword(字符串s)
{
布尔hasw=false;
对于(int i=0;i计数器)
{
计数器=ss.length();
word=ss;
}
}
}
System.out.println(word);

但现在我有一个任务,就是用正则表达式找出单词中是否有“w”以及该单词的长度。请帮助我

这个
\b[a-zA-Z0-9]*[wW][a-zA-Z0-9]*\b
正则表达式将匹配所有带w或w的单词 将匹配的字传递给函数以查找长度。在java中,您必须像

\\b[a-zA-Z0-9]*[wW][a-zA-Z0-9]*\\b

public class MatcherTest {

    public static void main(String[] args) {

        String word = "wata what word down a adf asdfasdf";

        Pattern p = Pattern.compile("\\w*[wW]+\\w*");
        Matcher m = p.matcher(word);

        while (m.find()) {
            System.out.println(m.group());
        }
    }
}
将输出:

wata
what
word
down

您可以在这里找到文档

我不明白。你不是已经这么做了吗?为什么需要使用regex?为什么需要该方法
longestword()
?你可以在正则表达式中找到带有“
w
”(你需要转义)的单词,但对于长度,你仍将使用相同的方法。我有一个任务要用regex来完成。你在谷歌上搜索过“正则表达式”吗?有很多关于如何编写正则表达式的文档。当你真的尝试过但没有成功的时候再来。对于这样一个简单的任务来说,正则表达式不是太多了吗?他已经有了文字,不需要寻找文字边界和其他东西