Java 如何从扫描仪读取字符串,并将每个字母转换为不同的值?

Java 如何从扫描仪读取字符串,并将每个字母转换为不同的值?,java,string,encryption,char,Java,String,Encryption,Char,我正在处理一个作为文件导入的字符串,获取每个字符,并通过将其更改为下一个字母对其进行“加密”。基本上,a是b,b是c,c是d,等等。它是不安全的,但它不是为了这些目的。扫描的字符串可以是任何东西,但我使用的是“橙汁很棒!我昨天喝了83214杯。”它位于一个名为input.txt的文件中 我的代码如下: import java.util.Scanner; import java.io.*; public class ReadFileExample{ public static void

我正在处理一个作为文件导入的字符串,获取每个字符,并通过将其更改为下一个字母对其进行“加密”。基本上,a是b,b是c,c是d,等等。它是不安全的,但它不是为了这些目的。扫描的字符串可以是任何东西,但我使用的是“橙汁很棒!我昨天喝了83214杯。”它位于一个名为input.txt的文件中

我的代码如下:

import java.util.Scanner;
import java.io.*;

public class ReadFileExample{

   public static void main(String[] args){

      //String fileName = "input.txt";
      //File file = new File(fileName);
      //Scanner in = new Scanner(file);
      try{
         Scanner in = new Scanner(new File("input.txt"));
         while(in.hasNext() == true){
            String input = in.next();
            System.out.println(input);

            }
         }
         in.close();
      }
      catch(FileNotFoundException exception){
         System.out.println("Could not find the file.");
      }

   }

}
我曾考虑过将字符串转换为数组,但我不知道该怎么做。也许是这样

char[] charArray = input.toCharArray();
            for (char c : charArray){
               System.out.println(c);
            }
我真的不知道该怎么办。我还想知道for(I=0;I 第二种文件加密技术是用字母表中的位置替换每个字母。我们将为每个字母使用两位数字。例如,字母“a”是01,字母“b”是02,字母“c”是03,字母“z”是26。所以我们可以使用大写字母,我们以27开头“A”,以28开头“B”,以29开头“C”,以此类推

对于数字,我们将每个数字转换为两个字母:它们代表的前两个字母。第一个字母大写,后面是小写字母。例如,写出来的8等于8。因此,8将被加密为“Ei”,1将被加密为“On”,2将被加密为“Tw”,3将被加密为“Th”,依此类推

请注意,“10”实际上是两个数字,因此它将被加密为“1”和“0”:“OnZe”

如果遇到非字母字符(空格、标点符号、数字等),只需按原样打印即可,无需加密


感谢任何帮助,即使它建议搜索什么来回答我的问题。

以下是代码,代码在注释中解释,如果您需要更多帮助,请在下面的注释中找到演示! 我已经给出了静态字符串的演示,您已经给出了示例

import java.util.HashMap;
/**
*
*@作者赛卡兰
*/
公共类应用程序{
//函数返回第二种编码方法的子字符串
//示例1将返回On,2将返回Tw…等
公共静态字符串findstringmap(字符c)
{
//创建hashmap并添加关键元素和字符串定义
HashMap hmap=newhashmap();
/*向HashMap添加元素*/
hmap.put(1,“一”);
hmap.put(2,“两”);
hmap.put(3,“三”);
hmap.put(4,“四”);
hmap.put(5,“5”);
hmap.put(6,“六”);
hmap.put(7,“七”);
hmap.put(8,“8”);
hmap.put(9,“9”);
hmap.put(0,“零”);
/*基于键获取值*/
int num_value=Character.getNumericValue(c);
//转换为数值
字符串var=hmap.get(num_值);
//获取子字符串
字符串ret_str=var.substring(0,2);
返回ret_str;
}
公共静态void main(字符串[]args){
//此处的TODO代码应用程序逻辑
String l1=“橙汁很棒!我昨天喝了83214杯。”;
//字符串final包含结果
字符串Final=“”;
字符串next=“”;
对于(int i=0;iimport java.util.HashMap;

/**
 *
 * @author Sai-Karan
 */
public class App {

    //Function to return the substring for the second encoding method
    //Example 1 will return On, and 2 will return Tw ....etc
    public static String findstringmap(char c)
    {
        //Create a hashmap and add the key elements and the string definitions
      HashMap <Integer, String> hmap = new HashMap <Integer, String>();

       /*Adding elements to HashMap*/
      hmap.put(1, "One");
      hmap.put(2, "Two");
      hmap.put(3, "Three");
      hmap.put(4, "Four");
      hmap.put(5, "Five");
      hmap.put(6, "Six");
      hmap.put(7, "Seven");
      hmap.put(8, "Eight");
      hmap.put(9, "Nine");
      hmap.put(0, "Zero");

      /* Get values based on key*/
      int num_value = Character.getNumericValue(c);
      //convert to the numeric value
      String var = hmap.get(num_value);
      //get the substring
      String ret_str = var.substring(0, 2);
      return ret_str;
    }
    public static void main(String[] args) {
        // TODO code application logic here

        String l1 = "Orange juice is great! I drank 83,214 cups of it yesterday.";
        //String final contains the result
         String Final = "";
         String next = "";
        for(int i =0 ; i< l1.length(); i++)
        {
           //char c = l1.charAt(i);

            if (l1.charAt(i) == ' ')
            {
             next = " ";
            }
            else if (l1.charAt(i) == '!')
            {
             next = "!";
            }
            else if(l1.charAt(i) == ',')
            {
                next = ",";
            }
            else if(l1.charAt(i) == '.')
            {
                next = ".";
            }
            else if(!(Character.isDigit(l1.charAt(i))))
           {
           int val = l1.charAt(i);
           next = String.valueOf( (char) (val + 1));

           // System.out.println(next);
           }
           else if(Character.isDigit(l1.charAt(i)))
           {
               next = findstringmap(l1.charAt(i));

           }
           Final = Final + next;

        }
        System.out.println(Final);
    }

}