java实现从一段英文文本中提取出所有的英文单词并保存在一个字符串数组里
时间: 2023-09-10 18:04:50 浏览: 69
### 回答1:
可以使用正则表达式来匹配英文单词,然后将其保存在一个字符串数组中。以下是代码示例:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class WordExtractor {
public static void main(String[] args) {
String text = "This is a sample text with some words.";
String[] words = extractWords(text);
for (String word : words) {
System.out.println(word);
}
}
public static String[] extractWords(String text) {
Pattern pattern = Pattern.compile("[a-zA-Z]+");
Matcher matcher = pattern.matcher(text);
String[] words = new String[100];
int i = 0;
while (matcher.find()) {
words[i++] = matcher.group();
}
return words;
}
}
```
在上面的示例中,我们使用正则表达式 `[a-zA-Z]+` 来匹配所有由字母组成的单词。然后使用 `Matcher` 类的 `find()` 方法来逐个匹配所有出现的单词,并将其保存在一个字符串数组中。
### 回答2:
要实现从一段英文文本中提取出所有的英文单词并保存在一个字符串数组里,可以使用Java的正则表达式来实现。下面是一个简单的示例代码:
```java
import java.util.regex.*;
public class WordExtractor {
public static void main(String[] args) {
String text = "This is a sample text for word extraction.";
// 使用正则表达式匹配英文单词,并保存在字符串数组中
Pattern pattern = Pattern.compile("\\b[a-zA-Z]+\\b");
Matcher matcher = pattern.matcher(text);
String[] words = new String[0];
while (matcher.find()) {
words = addWord(words, matcher.group());
}
// 输出所有提取到的英文单词
for (String word : words) {
System.out.println(word);
}
}
// 在字符串数组末尾添加一个单词,并返回新的数组
private static String[] addWord(String[] array, String word) {
String[] newArray = new String[array.length + 1];
System.arraycopy(array, 0, newArray, 0, array.length);
newArray[array.length] = word;
return newArray;
}
}
```
在上述代码中,我们使用了正则表达式 `\b[a-zA-Z]+\b` 来匹配英文单词。其中 `\b` 表示单词的边界,`[a-zA-Z]` 表示大小写字母,`+` 表示匹配一个或多个字母。
通过循环遍历 Matcher 对象的 find() 方法,我们可以找到所有匹配的英文单词并保存在字符串数组 words 中。为了方便动态添加单词,我们使用了一个辅助方法 addWord(),每次在字符串数组末尾添加一个新的单词,并返回新的数组。
最后,我们使用一个简单的循环输出数组 words 中的所有单词。运行这段代码,将输出文本中的所有英文单词:
```
This
is
a
sample
text
for
word
extraction
```
### 回答3:
要实现从一段英文文本中提取出所有的英文单词并保存在一个字符串数组里,可以使用Java中的正则表达式和字符串处理方法来完成。下面是一个简单的示例代码:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class WordExtractor {
public static void main(String[] args) {
String englishText = "I have a cat. It is cute.";
// 使用正则表达式匹配英文单词
String regex = "\\b[A-Za-z]+\\b";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(englishText);
// 将匹配到的英文单词保存在一个字符串数组里
int count = 0;
String[] words = new String[100]; // 假设最多有100个英文单词
while (matcher.find()) {
words[count++] = matcher.group();
}
// 打印提取到的英文单词
for (int i = 0; i < count; i++) {
System.out.println(words[i]);
}
}
}
```
以上代码首先定义了一个英文文本字符串 `englishText`,然后使用正则表达式 `\b[A-Za-z]+\b` 来匹配英文单词。其中 `\b` 表示单词的边界,`[A-Za-z]+` 表示一个或多个大小写字母。然后使用 `Pattern` 类的 `compile()` 方法将正则表达式编译成模式,再使用 `Matcher` 类的 `find()` 方法进行匹配。
匹配到的英文单词通过 `matcher.group()` 方法获取,然后保存在一个字符串数组 `words` 中。为了方便,这里假设最多有100个英文单词,可以根据实际情况调整数组大小。
最后,使用循环打印出提取到的英文单词。
请注意,以上示例代码只是一个简单的实现,可能无法处理一些特殊情况,比如连字符、缩写、带有标点符号的单词等。如果需要更严格的英文单词提取功能,可能需要更复杂的正则表达式或其他处理方式。