gpt4 book ai didi

java - 颠倒句子中的单词

转载 作者:行者123 更新时间:2023-12-03 02:59:03 26 4
gpt4 key购买 nike

我在文本文件中包含以下数据

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();
}

关于java - 颠倒句子中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21952044/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com