【问题描述】
编写一个程序,从一个文件中读入单词(即:以空格分隔的字符串),并对单词进行排序,删除重复出现的单词,然后将结果输出到另一个文件中。
【输入形式】
从一个文件sort.in中读入单词。
【输出形式】
对单词进行排序,删除重复出现的单词,然后将结果输出到文件sort.out中。
【输入样例】
假如sort.in文件内容如下:
rrr sss aaa bbb ccc ddf aaa dd
【输出样例】
sort.out文件内容为:
aaa bbb ccc dd ddf rrr sss
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class App {
/**
* @param args *
* @throws IOException *
* @ ww *
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String name="sort.in";
File f1=new File(name);
File f2=new File("sort.out");
Scanner sc=new Scanner(f1);
String[] str=new String[10];
int i=0;
while(sc.hasNext())
{
str[i]=sc.next();
i++;
}
List list =new ArrayList<>();
for(int j=0;j<i;j++)
{
if(!list.contains(str[j]))
{
list.add(str[j]);
}
}
String str1[]=new String[10];
int temp=0;
for(temp=0;temp<list.size();temp++)
{
str1[temp]=list.get(temp).toString();
}
Arrays.sort(str1,0,temp);
FileWriter fw=new FileWriter(f2);
BufferedWriter bw=new BufferedWriter(fw);
for(int j=0;j<temp;j++)
{
bw.write(str1[j]+" ");
}
sc.close();
bw.close();
fw.close();
}
}
【问题描述】输入两行字符串s和t(s和t最长含50个字符,可以含有空格),将s串中首次与t匹配的子串逆置,并将结果输出。
【输入文件】输入文件为invertsub.in,含有两行字符串s和t,分别以#作为串结束符。
【输出文件】输出文件invertsub.out只有一行,包含一个串,是要求的输出结果。在行末也要有一个回车符。
【输入样例】helloworld#
llowor#
【输出样例】herowollld
【样例说明】helloworld和llowor中重复的子串为llowor,逆置后结果为herowollld
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class StringReverse{
public static void main(String[] args) throws IOException
{
File f1=new File("invertsub.in");
File f2=new File("invertsub.out");
Scanner sc=new Scanner(f1);
//FileReader fr=new FileReader(f1);
StringBuffer s=new StringBuffer();
StringBuffer t=new StringBuffer();
s.append(sc.nextLine());
t.append(sc.nextLine());
sc.close();
s.deleteCharAt(s.indexOf("#"));
t.deleteCharAt(t.indexOf("#"));
int flag=compareString(s, t);
t.reverse();
s.replace(flag, flag+t.length(), t.toString());
FileWriter fw=new FileWriter(f2);
BufferedWriter bw=new BufferedWriter(fw);
for(int i=0;i<s.length();i++)
{
bw.write(s.charAt(i));
}
bw.close();
fw.close();
}
public static int compareString(StringBuffer s,StringBuffer t)
{
int temp=0;
for(int i=0;i<=s.length()-t.length();i++)
{
if(s.charAt(i)==t.charAt(0))
{
int flag=1;
for(int j=1;j<t.length();j++)
{
if(s.charAt(i+j)!=t.charAt(j))
{
flag=0;
break;
}
}
if(flag==1)
{
temp=i;
break;
}
}
}
return temp;
}
}
在这里插入代码片