写一个java编程 要求能把txt文件中的所有字母替换成k个位置后的字母 100

比如说k=1就把a换成bb换成ck=2就把a换成cb换成d... 比如说
k=1 就把a换成b b换成c
k=2 就把 a换成c b换成d
展开
 我来答
Angry_Carnival
2013-11-08
知道答主
回答量:8
采纳率:0%
帮助的人:3.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,望楼主采纳,楼主有什么不明白的可以问我,我会详细回答你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
SOFT_GHOST
2013-11-08 · TA获得超过106个赞
知道答主
回答量:225
采纳率:0%
帮助的人:93.2万
展开全部
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也需要自己判断
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友22ec83a43
2013-11-08 · TA获得超过181个赞
知道答主
回答量:120
采纳率:0%
帮助的人:64.8万
展开全部
这个挺容易的:
(1)首先判断当前读入的是字母
(2)将当前字母转换为数值并+K
(3)数值控制在65到122之间(A-Za-z)
(4)将数值转为字符
大功告成!!!
追问
怎么把字母转换成数值?
追答
直接取出来,强转就行了

int a = 'a'; // 低级向高级转,默认强转
System.out.println(a);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
y6198078
2013-11-08 · 超过20用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:35.5万
展开全部
大小写区分么
更多追问追答
追问
全部视为小写
随便吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-08
展开全部
替换成k个位置后的字母?? "K个位置"是什么意思呢,能描述清楚一点么?K是作为参数的么?
追问
k作为密匙  在字母表中 k个位置以后的字母代替之前的字母
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式