为了账号安全,请及时绑定邮箱和手机立即绑定

在java中更改字符串中的字符

在java中更改字符串中的字符

蝴蝶不菲 2021-10-28 09:36:54
我正在尝试编写代码更改我输入的字符串中的字符。这是我在更改字符时必须遵循的映射。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);}
查看完整描述

3 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

使用 StringBuilder(可变)。用法:

StringBuilder myString = new StringBuilder(someString);

除非对象可以被多个线程修改,否则推荐使用 StringBuilder。如果对象可以被多个线程修改,则使用 StringBuffer(也是可变的)。


查看完整回答
反对 回复 2021-10-28
?
HUWWW

TA贡献1874条经验 获得超12个赞

如果要更改字符串中的特定字符,请使用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());


查看完整回答
反对 回复 2021-10-28
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

您可以使用+运算符(或+=)将字符添加到新字符串。


这是一个例子


    String str1 = "abcdef";

    String str2 = "";

    for (int i = 0; i < str1.length(); i++)

        str2 += String.valueOf(str1.charAt(i)).toUpperCase();

    System.out.println(str1 + " ==> " + str2);


查看完整回答
反对 回复 2021-10-28
  • 3 回答
  • 0 关注
  • 395 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信