Java 用字母表中的下一个字母替换字符串中的每个字母,但保留空格和标点符号?
我需要用字母表中的下一个字母替换文件中的每个字母(不使用数字,因此不需要担心)。但是我应该保留空格和标点符号。代码可以很好地更改字母,但我不确定如何保留空格和标点符号。感谢您的帮助Java 用字母表中的下一个字母替换字符串中的每个字母,但保留空格和标点符号?,java,Java,我需要用字母表中的下一个字母替换文件中的每个字母(不使用数字,因此不需要担心)。但是我应该保留空格和标点符号。代码可以很好地更改字母,但我不确定如何保留空格和标点符号。感谢您的帮助 import java.io.*; import java.util.*; class Thirteen{ public static void main(String [] args)throws IOException{ Scanner keys = new Scanner(Syst
import java.io.*;
import java.util.*;
class Thirteen{
public static void main(String [] args)throws IOException{
Scanner keys = new Scanner(System.in);
Scanner keystwo;
System.out.println("Please enter an input file name");
String filename = keys.next();
File infile = new File(filename);
keystwo = new Scanner(infile);
System.out.println("Please enter an output filename");
String outputfile = keys.next();
File outfile = new File(outputfile);
FileOutputStream outstream = new FileOutputStream(outfile);
PrintWriter display = new PrintWriter(outstream);
while(keystwo.hasNext()){
String one = keystwo.next().toLowerCase();
//convert to stringbuilder to edit
StringBuilder fine = new StringBuilder(one);
for(int A = 0; A < fine.length(); A++){
//read in as character
char B = fine.charAt(A);
//convert to ASCII
int two = (int)B;
//add one
int convert = two+1;
//convert to char
char C = (char)convert;
if(C == '{'){
C = 'a';
}
//print char & add to output file
display.print(Character.toString(C));
System.out.print(Character.toString(C));
}//end for
}//end while
keystwo.close();
display.close();
}
}//end
import java.io.*;
导入java.util.*;
十三班{
公共静态void main(字符串[]args)引发IOException{
扫描仪键=新扫描仪(System.in);
扫描器键2;
System.out.println(“请输入输入文件名”);
字符串文件名=keys.next();
文件填充=新文件(文件名);
keystwo=新扫描仪(infle);
System.out.println(“请输入输出文件名”);
字符串outputfile=keys.next();
文件输出文件=新文件(输出文件);
FileOutputStream outstream=新FileOutputStream(输出文件);
PrintWriter显示=新的PrintWriter(扩展);
while(keystwo.hasNext()){
字符串one=keystwo.next().toLowerCase();
//转换为stringbuilder进行编辑
StringBuilder fine=新的StringBuilder(一个);
对于(int A=0;A
在将转换应用于字符串中的当前字符之前,您可以检查它是否是这样的字母:
if(Character.isLetter(character))
{
//Do conversion here
}
这样,转换将只应用于字母。在将转换应用于字符串中的当前字符之前,您可以检查它是否是这样的字母:
if(Character.isLetter(character))
{
//Do conversion here
}
这样,转换将只应用于字母。将字符C向上转换。将B转换为字符串。然后在正则表达式上匹配字符串。\\s表示空格\\p{Punct}表示标点符号。方括号表示它正在查找其中一项
String charAsString = Character.toString(B);
char C = B;
if (!charAsString.matches("[\\s\\p{Punct}]"))
{
// convert to ASCII
int two = (int) B;
// add one
int convert = two + 1;
// convert to char
C = (char) convert;
if (C == '{')
{
C = 'a';
}
// print char & add to output file
}
display.print(Character.toString(C));
System.out.print(Character.toString(C));
打开字符C。将B转换为字符串。然后匹配正则表达式上的字符串。\\s表示空格\\p{Punct}表示标点符号。方括号表示它正在查找其中一项
String charAsString = Character.toString(B);
char C = B;
if (!charAsString.matches("[\\s\\p{Punct}]"))
{
// convert to ASCII
int two = (int) B;
// add one
int convert = two + 1;
// convert to char
C = (char) convert;
if (C == '{')
{
C = 'a';
}
// print char & add to output file
}
display.print(Character.toString(C));
System.out.print(Character.toString(C));