在java中从字母和数字组合的字符串中提取单词?

在java中从字母和数字组合的字符串中提取单词?,java,regex,Java,Regex,这是我的第一个问题,很抱歉我的英语不好 我只想从包含字母和数字组合的字符串中提取单词,并将其存储在数组中 我尝试了这个代码,但我没有得到我想要的 String temp = "74 4F 4C 4F 49 65 brown fox jump over the fence"; String [] word = temp.split("\\W"); 这是我想要的结果(只有单词,没有空数组) 请帮忙,谢谢 您可以使用: String temp = "74 4F 4C 4F 49 65 brown

这是我的第一个问题,很抱歉我的英语不好

我只想从包含字母和数字组合的字符串中提取单词,并将其存储在数组中

我尝试了这个代码,但我没有得到我想要的

String temp = "74 4F 4C 4F 49 65  brown fox jump over the fence";
String [] word = temp.split("\\W");
这是我想要的结果(只有单词,没有空数组)

请帮忙,谢谢

您可以使用:

String temp = "74 4F 4C 4F 49 65  brown fox jump over the fence";
List<String> arr = new ArrayList<String>();
Pattern p = Pattern.compile("(?i)(?:^|\\s+)([a-z]+)");
Matcher m = p.matcher(temp);
while (m.find())
    arr.add(m.group(1));

// convert to String[]
String[] word = arr.toArray(new String[0]);
System.out.println( Arrays.toString(word) );
您可以使用:

String temp = "74 4F 4C 4F 49 65  brown fox jump over the fence";
List<String> arr = new ArrayList<String>();
Pattern p = Pattern.compile("(?i)(?:^|\\s+)([a-z]+)");
Matcher m = p.matcher(temp);
while (m.find())
    arr.add(m.group(1));

// convert to String[]
String[] word = arr.toArray(new String[0]);
System.out.println( Arrays.toString(word) );

根据@anubhava的回答,你可以做如下事情

String temp = "74 4F 4C 4F 49 65  brown fox jump over the fence";
Pattern pattern = Pattern.compile("\\b[A-Za-z]+\\b");
Matcher matcher = pattern.matcher(temp);

while (matcher.find()) {
  System.out.println("Matched " + matcher.group());
}

根据@anubhava的回答,你可以做如下事情

String temp = "74 4F 4C 4F 49 65  brown fox jump over the fence";
Pattern pattern = Pattern.compile("\\b[A-Za-z]+\\b");
Matcher matcher = pattern.matcher(temp);

while (matcher.find()) {
  System.out.println("Matched " + matcher.group());
}

这也将给出
F C F
=(我尝试了你的代码,但是数组的第一个索引是空的,来自4F 4C 4F的字母也在数组中。很抱歉我的英语不好。正则表达式很容易通过字符串[]word=temp.split(“\w[^A-Za-z]+\w”)来修复(假设Java支持\w单词边界指示符)@AriefTaufikurrahman:让我纠正一下,很抱歉我误解了这个问题。@CompuChip:如何让java支持它\w??这也会给出
F C F
=(我尝试了你的代码,但是数组的第一个索引是空的,数组中也有来自4F 4C 4F的字母。很抱歉我的英语不好。正则表达式很容易通过字符串[]word=temp.split来修复(“\w[^A-Za-z]+\w”);(假设Java支持\w单词边界指示器)。@AriefTaufikurrahman:让我更正一下,很抱歉我误解了这个问题。@CompuChip:如何让Java支持这个\w??