如果单词有';w';信。JAVA
我有一堆单词,我需要得到其中有“w”字母的最长单词。我是这样做的如果单词有';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;
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来完成。你在谷歌上搜索过“正则表达式”吗?有很多关于如何编写正则表达式的文档。当你真的尝试过但没有成功的时候再来。对于这样一个简单的任务来说,正则表达式不是太多了吗?他已经有了文字,不需要寻找文字边界和其他东西