如何从文本中随机选择一个单词,并在选择时反转相同的单词

时间:2015-07-09 02:03:45

标签: java

我想从文本文件中选择一个单词。打印该单词并反向打印相同的单词。当我运行代码时,我有下面的输出。我只需要反向打印相同的单词。但是当我在main函数中调用reverse方法时没有打印出来。 enter image description here

以下是我的代码:

.Add(string, List<string>) 

2 个答案:

答案 0 :(得分:1)

您不需要撤销整个ArrayList字符串。

删除private static void reverse(ArrayList<String> array)方法,让randomFile()返回String,这将被撤销。 StringBufferStringBuilder类使用此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();
        }

    }