java字符串查找与替换

qq_16590837 2014-06-26 03:00:14
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Random;
import java.util.Scanner;

public class StringAddressing{
public static void main(String args[]){
new chuli().run();
}
}


class chuli {

void run(){

char[] s ;
System.out.println("请分别输入a,b,c执行以下功能:");
System.out.println("\na表示创建文件并且产生随机字符串保存;\nb表示查找所产生的随机字符串的内容;\nc表示替换字符串;");
char []s0={'a','b','c'};
Scanner read=new Scanner(System.in);


for(int i=0;i<3;i++){

try {

s=read.next().toCharArray();
if(s[0]==s0[i]){
switch(s[0]){
//a表示创建文件并且产生随机字符串保存;
//b表示查找所产生的随机字符串的内容;
//c表示替换字符串;
case 'a': System.out.println("您的输入为a");runA();break;
case 'b': System.out.println("您的输入为b");runB();break;
case 'c': System.out.println("您的输入为c");runC();break;
}
}
else{
System.out.println("请按照a,b,c顺序输入!现在该输入"+s0[i]);
i--;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
read.close();
}

/*
* a表示创建文件并且产生随机字符串保存
*/
void runA(){
File file =new File("e:\\course_1.txt");
try {
if(!file.exists()){

file.createNewFile();

}
else{
System.out.println("该文件已经存在!正在使用已存在的文件进行操作···");
}
Random random=new Random();
String s1="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ .";
String s=new String();
StringBuffer sb=new StringBuffer();
int m=random.nextInt(100)+10;
for(int i=0;i<m;i++){
int n=random.nextInt(64);
sb.append(s1.substring(n,n+1));
}
s=sb.toString();
Thread.sleep(1000);
System.out.println("已经产生随机字符串:"+s);
FileWriter out1=new FileWriter(file);
BufferedWriter out2=new BufferedWriter(out1);
out2.append(s);
Thread.sleep(1000);
System.out.println("已经将随机字符串保存到了e:\\course_1.txt中!");
out2.close();
out1.close();

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

/*
* b表示查找所产生的随机字符串的内容
*/
void runB(){
File file =new File("e:\\course_1.txt");
try {
FileReader in1=new FileReader(file);
BufferedReader in2=new BufferedReader(in1);
String s=new String();

while((s=in2.readLine())!=null){
System.out.println("e:\\course_1.txt中的内容为:"+s);//..........
}
in2.close();
in1.close();
Thread.sleep(1000);
System.out.println("请输入要查找的内容:");
Scanner read=new Scanner(System.in);
String find=read.nextLine();//find

System.out.println("正在进行字符串查找···");
Thread.sleep(1000);
read.close();

for(int i=0;i<s.length()-find.length();i++){
if(s.regionMatches(i, find, 0, find.length())){
System.out.println("相同部分起始位置\n"+i+"\n");
}
}
String sh=new String("hehe");//sh为查找后的
File f=new File("e:\\course_2.txt");
if(!f.exists()){
f.createNewFile();
}

FileWriter out1=new FileWriter(f);
BufferedWriter out2=new BufferedWriter(out1);
out2.write(sh);
System.out.println("已经将查找后的字符串保存到了e:\\course_2.txt中!");
out2.close();
out1.close();

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}




/*
* c表示替换字符串;
*/
void runC(){

File file =new File("e:\\course_1.txt");
try {
FileReader in1=new FileReader(file);
BufferedReader in2=new BufferedReader(in1);
String s=new String("0");


while((s=in2.readLine())!=null){

System.out.println("e:\\course_1.txt中的内容为:"+s);//s..........
}

in2.close();
in1.close();
Thread.sleep(1000);
System.out.println("请输入要替换的内容:");
BufferedReader read=new BufferedReader(new InputStreamReader(System.in));
String find=new String("0");
find=read.readLine();
//find为要替换的内容
System.out.println("请输入要用来替换的内容:");
String find1=new String("0");
find1=read.readLine();
//find1为要用来替换的内容
read.close();
System.out.println("正在进行字符串替换···");
Thread.sleep(1000);


String sh=new String();
//sh


sh=s.replaceAll(find, find1);
File f=new File("e:\\course_3.txt");
if(!f.exists()){
f.createNewFile();
}

FileWriter out1=new FileWriter(f);
BufferedWriter out2=new BufferedWriter(out1);
out2.write(sh);
System.out.println("已经将替换后的字符串保存到了e:\\course_2.txt中!");
out2.close();
out1.close();

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}
...全文
572 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_16590837 2014-06-26
  • 打赏
  • 举报
回复
该文件的目的:创建一个文件,并向该文件输入多个随机字符串(至少10个),并对该文件中的字符串进行特殊字符串(自定义)的替换和删除操作,并将操作后的文件分别进行保存,最后打印出三个文件各自的内容。
yuhero_bbs 2014-06-26
  • 打赏
  • 举报
回复
不知道楼主 想干什么 ??请把每一个方法的目的、思路写出来。
业余草 2014-06-26
  • 打赏
  • 举报
回复
基础知识,现在是考试,将来就是工作
qq_16590837 2014-06-26
  • 打赏
  • 举报
回复
额,主要问题不是这个,主要是这个程序在运行时会抛出线程越界异常。明天就是java考试,希望大神,拷贝过去帮我看一下!!谢谢!
shine333 2014-06-26
  • 打赏
  • 举报
回复
那就别贴那么多东西啊,把你的需求说一遍... 大的字符串.indexOf(小的字符串) 返回大的字符串中找到的第一个小的字符串的开始位置(0开始的下标),如果没有找到-1 其他一系列overloading,可以指定查找开始位置,或者方向(lastIndexOf系列) contains,精简版,有或没有 原始.replace(被替换, 新的内容)
qq_16590837 2014-06-26
  • 打赏
  • 举报
回复
学生一枚,敬请谅解
qq_16590837 2014-06-26
  • 打赏
  • 举报
回复
我的程序中字符串查找和替换不会 , 还有程序在运行时会出现线程越界,帮我看一下!
shine333 2014-06-26
  • 打赏
  • 举报
回复
楼主想干嘛?这个是提问交流区,不是博客平台

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧