首页 > 解决方案 > 在java中更改字符串中的字符

问题描述

我正在尝试编写代码来更改我输入的字符串中的字符。这是我在更改字符时必须遵循的映射。

String letters = "abcdefghijklmnopqrstuvwxyz";  
String enc = "kngcadsxbvfhjtiumylzqropwe";

通过stackoverflow搜索我发现一个字符串不能被改变,所以我需要用转换后的字符创建一个新的字符串。我的问题是我不知道该怎么做。到目前为止,我已经能够访问字符串中的每个字符并打印它们。我知道解决方案是访问每个字符,更改它们然后将它们添加到新字符串中,这是我不知道该怎么做或查找的。

public static void main(String[] args) 
{
int cdcode;

//String letters = "abcdefghijklmnopqrstuvwxyz"; 
//String enc =     "kngcadsxbvfhjtiumylzqropwe";
String myString;
char ch;
int strLen;
int chrPos;
   do
   {

    System.out.println("Enter 1 to encode, 2 to decode, 3 to quit:");

    Scanner myCode = new Scanner(System.in);
    Scanner myText = new Scanner(System.in);

    cdcode = myCode.nextInt();


    switch(cdcode)
    {
        case 1: 
            System.out.println("Enter the text to encode: ");
            myString = myText.nextLine();
            strLen = myString.length();
            System.out.println("String Length is: " +myString.length());

            for(chrPos = 0; chrPos < strLen ;chrPos++)
            {
                System.out.println("The Letters are: " +myString.charAt(chrPos));
                if(myString.charAt(chrPos)== 'S')
                {
                System.out.println("It is an S");
                }
            }
            break;


        case 2:
        System.out.println("Enter the text to decode: ");
        myString = myText.nextLine();
        break;

    }

   }while(cdcode != 3);
}

标签: java

解决方案


如果要更改字符串中的特定字符,请使用replaceAll()函数。

String ss = letters.replaceAll("a","x");

如果要手动检查字符串中的所有字符,然后遍历字符串中的if每个字符,对每个字符执行条件,如果需要更改附加新字符,否则使用StringBuilder.

StringBuilder br = new StringBuilder();
for (int i = 0; i < letters.length(); i++) {
    if (letters.charAt(i) == 'a') 
        br.append("s");
    else
        br.append(letters.charAt(i));
    }
System.out.println(br.toString());

推荐阅读