以下是一个在字符串中找到由所有不同字符组成的单词的解决方法,不使用Java Collection Framework:
public class UniqueWordsInString {
public static void main(String[] args) {
String str = "hello world hello";
findUniqueWords(str);
}
public static void findUniqueWords(String str) {
// 用于存储已经找到的唯一单词
String uniqueWords = "";
// 用于记录已经处理过的字符
String processedChars = "";
// 去除字符串中的标点符号和空格,只保留字母和数字
str = str.replaceAll("[^a-zA-Z0-9 ]", "");
// 将字符串分割成单词
String[] words = str.split(" ");
// 遍历每个单词
for (String word : words) {
// 去除重复字符
String uniqueChars = "";
for (char c : word.toCharArray()) {
if (uniqueChars.indexOf(c) == -1 && processedChars.indexOf(c) == -1) {
uniqueChars += c;
processedChars += c;
}
}
// 如果单词中的字符都是唯一的,则将其添加到结果中
if (uniqueChars.length() == word.length()) {
uniqueWords += word + " ";
}
}
System.out.println("Unique words: " + uniqueWords);
}
}
在上述代码中,我们首先使用正则表达式去除字符串中的标点符号和空格,只保留字母和数字。然后,我们将字符串分割成单词数组。接下来,我们遍历每个单词,对于每个字符,我们检查它是否在当前单词的唯一字符中,并且还没有被处理过。如果是,则将其添加到唯一字符列表和已处理字符列表中。最后,我们检查单词中的字符是否都是唯一的,如果是,则将该单词添加到结果字符串中。最终,我们打印出所有由所有不同字符组成的单词。