我在文本文件中有以下数据
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] 删除。
我来说两句