我正在尝试为类项目制作单词打乱器。它需要读入一个 .txt
文件并输出一个包含文件中所有单词的字符串;但炒。例如:
这就是应该如何打乱单词。
忽略标点符号并保留第一个和最后一个字母。
我无法将文件读入数组。我计划使用 collections.shuffle 通过忽略第一个和最后一个字母并随机化内部字母来洗牌内层。
我不知道如何实现文件阅读器,但这是我对每个单词的加扰器。
public static String shuffle(String input){
input = "supercalifragilisticexpialidocious";
int i = 0;
ArrayList<Character> chars = new ArrayList<Character>(input.length());
String output = "";
char[] characters = input.toCharArray();
char[] newWord = new char[input.length()];
newWord[0] = characters[0];
newWord[input.length()-1] = characters[input.length()-1];
for (i=1; i < input.length()-1;i++ ) {
chars.add(characters[i]);
}
System.out.println(chars);
for (i = 1; i <= input.length()-2; i++)
{
Collections.shuffle(chars);
}
Character[] middle = chars.toArray(new Character[chars.size()]);
for (i = 1; i < newWord.length - 2; i++)
{
newWord[i] = middle[i];
}
System.out.println(newWord);
StringBuffer r= new StringBuffer(output);
for (i = 0; i < newWord.length-1; i++)
{
r.append(newWord[i]);
}
return output;
}
这会像我想要的那样输出 saxupieipclflaurrtocslcidigaiiois
,但现在我需要一种方法来读取 .txt 文件并将其拆分为单独的单词。
如果有人能帮助我,那就太好了。我真正想要的是是否有人可以帮助我为此制作一个文件阅读器。
最佳答案
使用文件阅读器读取文件使用正则表达式拆分成单词
BufferedReader br = new BufferedReader( new FileReader( "file.txt" ) );
try {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while ( line != null ) {
sb.append( line );
sb.append( '\n' );
line = br.readLine();
}
String everything = sb.toString();
String[] words = everything.split( "[^\\w']+" );
System.out.println( words );
} finally {
br.close();
}
}
关于java - 如何制作 Java 文件阅读器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18776642/