写一个java编程 要求能把txt文件中的所有字母替换成k个位置后的字母 100
5个回答
展开全部
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;
//AUTHOR 盖子
public class Replace {
private static int N=1;
public static void main(String[] args) {
Replace replace=new Replace();
try {
BufferedReader in = new BufferedReader(new FileReader("e:\\test.txt"));
BufferedWriter writer = new BufferedWriter(new FileWriter(new File("e:\\test2.txt")));
String line = null;
int i=0;
while ((line=in.readLine())!=null) {
writer.write(replace.change(line, N));
writer.flush();
}
System.out.println("DONE");
int ch=' ';
System.out.println(ch);
//每个字符都是由ASCII码的,是一个数字,小写a是97b是98,
//我打印的是空格的码值,楼主懂了吗
in.close();
writer.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String change(String line,int k)
{
String string="";
for (int i = 0; i < line.length(); i++) {
if (line.charAt(i)==32) {
string+=" ";
continue;
// 这里可以保证空格保持不变,你还有什么字符要求保持不变的都可以再加
}
char a=(char) (line.charAt(i)+k);
string+=a;
}
return string;
}
}
这是我刚给你写的,那个static的变量N就是你需要改变的K,望楼主采纳,楼主有什么不明白的可以问我,我会详细回答你
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
//AUTHOR 盖子
public class Replace {
private static int N=1;
public static void main(String[] args) {
Replace replace=new Replace();
try {
BufferedReader in = new BufferedReader(new FileReader("e:\\test.txt"));
BufferedWriter writer = new BufferedWriter(new FileWriter(new File("e:\\test2.txt")));
String line = null;
int i=0;
while ((line=in.readLine())!=null) {
writer.write(replace.change(line, N));
writer.flush();
}
System.out.println("DONE");
int ch=' ';
System.out.println(ch);
//每个字符都是由ASCII码的,是一个数字,小写a是97b是98,
//我打印的是空格的码值,楼主懂了吗
in.close();
writer.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String change(String line,int k)
{
String string="";
for (int i = 0; i < line.length(); i++) {
if (line.charAt(i)==32) {
string+=" ";
continue;
// 这里可以保证空格保持不变,你还有什么字符要求保持不变的都可以再加
}
char a=(char) (line.charAt(i)+k);
string+=a;
}
return string;
}
}
这是我刚给你写的,那个static的变量N就是你需要改变的K,望楼主采纳,楼主有什么不明白的可以问我,我会详细回答你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/**
* 写一个java编程 要求能把txt文件中的所有字母替换成k个位置后的字母
* @author sunjiyong@yeah.net
*
*/
public class ReplaceTextFile {
public static void main(String[] args) throws IOException{
int k = 1;
FileReader reader = new FileReader(new File("d:\\temp\\in.txt"));
FileWriter writer = new FileWriter(new File("d:\\temp\\out.txt"));
int c = 0;
while(-1!=(c = reader.read())){
c+=k;
writer.write(c);
}
reader.close();
writer.close();
}
}
追问
空格需要原样
追答
自己改下吧, 判断下c的范围。
还有z-->a也需要自己判断
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个挺容易的:
(1)首先判断当前读入的是字母
(2)将当前字母转换为数值并+K
(3)数值控制在65到122之间(A-Za-z)
(4)将数值转为字符
大功告成!!!
(1)首先判断当前读入的是字母
(2)将当前字母转换为数值并+K
(3)数值控制在65到122之间(A-Za-z)
(4)将数值转为字符
大功告成!!!
追问
怎么把字母转换成数值?
追答
直接取出来,强转就行了
int a = 'a'; // 低级向高级转,默认强转
System.out.println(a);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
大小写区分么
更多追问追答
追问
全部视为小写
随便吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-08
展开全部
替换成k个位置后的字母?? "K个位置"是什么意思呢,能描述清楚一点么?K是作为参数的么?
追问
k作为密匙 在字母表中 k个位置以后的字母代替之前的字母
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询