Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用字母表中的下一个字母替换字符串中的每个字母,但保留空格和标点符号?_Java - Fatal编程技术网

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));