java - 在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);
}
解决方案
如果要更改字符串中的特定字符,请使用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());
推荐阅读
- julia - 如何在 Julia 中实例化一个结构,其中我在字符串变量中有结构名称?
- ios - 强制更改子视图框架
- go - 立即退出所有递归生成的 goroutine
- google-sheets - 将公式转化为 ArrayFormula Part2
- java - 检查是否没有针对 Firebase ui 查询类返回任何文档
- java - 优先队列的最短路径问题
- java - 如何在java中的给定时间(即上午11:00)和另一个时间(即下午1:00)之间遍历?
- ruby - 意外的keyword_end MongoDB注入
- bitbucket - 工件未在 bitbucket 管道中发布
- mysql - 在sql中加入查询