反转句子中的单词

用户名

我在文本文件中有以下数据

5
this is a test
foobar
all your base
class
pony along

这里的第一个数字表示我输入的行数。遵循数据线。在这里,我想颠倒一句话。

Eg:
this is a test

被颠倒为

test a is this

当我运行以下代码

String input = "This is interview question.";
String output = "";
String[] array = input.split(" ");
for(int i = array.length-1; i >= 0; i--)
{
    output =output+ array[i];
    if (i != 0) 
    { 
        output =output+ " ";
    }
}
System.out.println(output);

我得到正确的输出,但是从文件读取时却是另外一回事。

我正在使用以下代码查看文本文件中的数据。

import java.io.File;
import java.util.ArrayList;
import java.util.Scanner;

public class Dummy {
    public static void main(String args[]) throws Exception {
//        Scanner s = new Scanner(new File("D:/GC/Store Credit/A-small.in"));
        Scanner s = new Scanner(new File("D:/GC/Reverse/B-small.in"));

        while (s.hasNextLine()){
            System.out.println(s.nextLine());
        }

        s.close();
    }
}

它根据我的文本文件给出输出。

并且类似地,当我尝试以条件来运行上述代码以反转字符串时,它给了我错误的输出

我使用的代码是

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;


public class RevSent {
    public static void main(String[] args) throws Exception {
        File file=new File("D:/GC/Reverse/B-Small.txt");
        FileWriter fw=new FileWriter(file);
        BufferedWriter bw=new BufferedWriter(fw);
        Scanner sc=new Scanner(new File("D:/GC/Reverse/B-small.in"));
        int testCaseCount = Integer.parseInt(sc.next());
        System.out.println("Test cases are:"+testCaseCount);

        for(int i=0;i<testCaseCount;i++)
        {
             while (sc.hasNextLine()){
                    String input=sc.nextLine();
                    System.out.println(input);
                    String output="";
                    String[] array=input.split(" ");
                    for(int j=array.length-1;j>0;j--){
                        output+=array[j];
                    }
                    System.out.println(output);
                }
            }
        sc.close();
    }
}

我得到的输出是

Test cases are:5


this is a test
testais
foobar

all your base
baseyour
class

pony along
along

请让我知道我要去哪里错了。谢谢大家,我进行了更改并且代码运行正常,但是我遇到了另一种情况,在这种情况下,我必须在结果之前添加案例编号(测试案例编号),但是在我的代码中,案例编号仍然是仅1.代码如下。

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;


public class RevSent {

    public static void main(String[] args) throws Exception {
        File file=new File("D:/GC/Reverse/B-Small.txt");
        FileWriter fw=new FileWriter(file);
        BufferedWriter bw=new BufferedWriter(fw);
        Scanner sc=new Scanner(new File("D:/GC/Reverse/B-small.in"));
        int testCaseCount = Integer.parseInt(sc.next());
//      System.out.println("Test cases are:"+testCaseCount);

        for(int i=0;i<testCaseCount;i++)
        {
            String output="";
                    String input=sc.nextLine();
                    String[] array=input.split(" ");
                    for(int j=array.length-1;j>=0;j--){
                        output+=array[j]+" ";

                    }

                    bw.write("Case #" + (i+1) + ": " + output + "\r\n");
             System.out.println("Case #" + (i+1) + output+"\r\n");
            }
        bw.close();
        sc.close();
    }
}

输出如下,还有一个多余的情况,没有结果。

Case #1 

Case #2test a is this 

Case #3foobar 

Case #4base your all 

Case #5class 

谢谢

尼基斯

编辑用最新代码更新。请尝试以下操作:

public static void main(String[] args) throws Exception {
    File file = new File("D:/GC/Reverse/B-Small.txt");
    FileWriter fw = new FileWriter(file);
    BufferedWriter bw = new BufferedWriter(fw);
    Scanner sc = new Scanner(new File("D:/GC/Reverse/B-small.in"));
    int testCaseCount = Integer.parseInt(sc.next());
    //System.out.println("Test cases are:"+testCaseCount);
    int i = 0;

    while (sc.hasNextLine()) {
        String input = sc.nextLine();
        //System.out.println(input);
        String output = "";
        String[] array = input.split(" ");
        for (int j = array.length - 1; j >= 0; j--) {
            output += array[j] + " ";
        }
        if (!"".equals(output)){
            bw.write("Case #" + (i + 1) + ": " + output.trim() + "\r\n");
        }

    }

    bw.close();
    sc.close();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

反转句子中的每个单词

来自分类Dev

使用Python在句子中反转单词?

来自分类Dev

使用 Stack 反转句子中的单词

来自分类Dev

反转句子中的单词而不是字母

来自分类Dev

使用Python来反转句子中的单词

来自分类Dev

如何在Perl中反转句子中的单词?

来自分类Dev

如何只反转句子中单词中的字符(留下数字)?

来自分类Dev

通用代码使用python反转句子中的替换单词

来自分类Dev

反转句子中每个单词的字符而无需反转单词顺序

来自分类Dev

反转文件的句子,行和单词

来自分类Dev

隐藏句子中的单词

来自分类Dev

句子中的单词重复

来自分类Dev

在句子中查找单词

来自分类Dev

搜索句子中的单词

来自分类Dev

检查句子中的单词

来自分类Dev

如何使用c ++反转句子字符串中的每个单词,例如“我喜欢计算机科学”

来自分类Dev

如何在C#中反转句子

来自分类Dev

预测句子中的遗漏单词

来自分类Dev

查询以分隔句子中的单词

来自分类Dev

从句子中删除单词

来自分类Dev

匹配句子中的连续单词

来自分类Dev

在句子中查找单词C ++

来自分类Dev

颠倒句子中的单词

来自分类Dev

查询以分隔句子中的单词

来自分类Dev

替换句子中的单词?

来自分类Dev

获取句子中的单词索引

来自分类Dev

使句子中的单词成为数字

来自分类Dev

反转短语中的某些单词

来自分类Dev

从文件中的句子中删除重复的单词