我想从文本文件中选择一个单词。打印该单词并反向打印相同的单词。当我运行代码时,我有下面的输出。我只需要反向打印相同的单词。但是当我在main函数中调用reverse方法时没有打印出来。
以下是我的代码:
.Add(string, List<string>)
答案 0 :(得分:1)
您不需要撤销整个ArrayList
字符串。
删除private static void reverse(ArrayList<String> array)
方法,让randomFile()
返回String
,这将被撤销。 StringBuffer
和StringBuilder
类使用此reverse()
方法来反转字符串。
我还建议您将randomFile()
重命名为randomWord()
,因为您要将字词随机化而不是文件。
<强> randomWord():强>
private static String randomWord() {
Random r = new Random();
while(file.hasNextLine()){
words.add(file.nextLine());
}
String randomWord = words.get(r.nextInt(words.size()));
// Collections.shuffle(words); -> this is not needed since randomWord is already produced.
return randomWord;
}
主要():强>
public static void main(String[] args) {
openFile();
String random = randomWord();
System.out.println("Before: " + random);
System.out.print("After: " + new StringBuilder(random).reverse() );
}
示例输出:
Before: hallow
After: wollah
答案 1 :(得分:0)
如果您使用FileUtils和StringBuilder中的Apache Common IO,代码会短得多。一个例子是:
public static void main( String[] args )
{
File file = new File( "word-file.txt" );
try
{
List<String> lines = FileUtils.readLines( file );
Random random=new Random();
String before=lines.get(random.nextInt(lines.size()));
System.out.println("Before:"+before);
System.out.println("After:"+ new StringBuilder(before).reverse());
}
catch( IOException e )
{
e.printStackTrace();
}
}