Java 一次替换多个字符
我试图用某些模式替换字符串“abc”: 当“a”替换为“b”,当“b”替换为“c”,当“c”替换为“a”时 我现在掌握的代码是:Java 一次替换多个字符,java,android,replace,Java,Android,Replace,我试图用某些模式替换字符串“abc”: 当“a”替换为“b”,当“b”替换为“c”,当“c”替换为“a”时 我现在掌握的代码是: String alp = "abc"; String alteredAlp = ""; char [] charAlp = alp.toLowerCase().toCharArray(); for (int i = 0; i < charAlp.length() - 1; i++) { if(charAlp[i] == 'a') alt
String alp = "abc";
String alteredAlp = "";
char [] charAlp = alp.toLowerCase().toCharArray();
for (int i = 0; i < charAlp.length() - 1; i++)
{
if(charAlp[i] == 'a')
alteredAlp += 'b';
else if(charAlp[i] == 'b')
alteredAlp += 'c';
else if(charAlp[i] == 'c')
alteredAlp += 'a';
}
String alp=“abc”;
字符串alteredAlp=“”;
char[]charAlp=alp.toLowerCase().toCharArray();
对于(int i=0;i
我尝试使用“replaceAll”,但在第一次迭代后遇到了一些问题
有没有办法让这一切变得更好?
提前谢谢 对于
char[]
没有length()
这样的方法。将其更改为charAlp.length
接下来,将charAlp.length-1
更改为charAlp.length
,您的代码将正常工作
相反,您可以这样做:(不需要额外的字符串)
for(int i=0;i
现在,您将
charAlp
更改为“bca”而不是“abc”(如您所愿)对于char[]
没有length()
这样的方法。将其更改为charAlp.length
接下来,将charAlp.length-1
更改为charAlp.length
,您的代码将正常工作
相反,您可以这样做:(不需要额外的字符串)
for(int i=0;i
现在,您将
charAlp
更改为“bca”而不是“abc”(如您所愿)您也可以使用StringBuilder进行相同的操作,如下所示:
public class CharReplace {
public static void main(String[] args) {
String alp = "abc";
StringBuilder alteredAlp = new StringBuilder();
for (int i = 0; i < alp.length(); i++) {
switch(alp.charAt(i)) {
case 'a':
alteredAlp.append('b');
break;
case 'b':
alteredAlp.append('c');
break;
case 'c':
alteredAlp.append('a');
break;
}
}
System.out.println(alteredAlp.toString());
}
}
公共类字符替换{
公共静态void main(字符串[]args){
字符串alp=“abc”;
StringBuilder alteredAlp=新StringBuilder();
对于(int i=0;i
您也可以使用StringBuilder进行同样的操作,如下所示:
public class CharReplace {
public static void main(String[] args) {
String alp = "abc";
StringBuilder alteredAlp = new StringBuilder();
for (int i = 0; i < alp.length(); i++) {
switch(alp.charAt(i)) {
case 'a':
alteredAlp.append('b');
break;
case 'b':
alteredAlp.append('c');
break;
case 'c':
alteredAlp.append('a');
break;
}
}
System.out.println(alteredAlp.toString());
}
}
公共类字符替换{
公共静态void main(字符串[]args){
字符串alp=“abc”;
StringBuilder alteredAlp=新StringBuilder();
对于(int i=0;i
一种更通用的方式:
字母表必须定义为无间隙
但也可以是“abcdefgh”:
结果:
一种更通用的方式:
字母表必须定义为无间隙
但也可以是“abcdefgh”:
结果:
bca
public class CharReplace {
public static void main(String[] args) {
String alp = "abc";
StringBuilder alteredAlp = new StringBuilder();
for (int i = 0; i < alp.length(); i++) {
switch(alp.charAt(i)) {
case 'a':
alteredAlp.append('b');
break;
case 'b':
alteredAlp.append('c');
break;
case 'c':
alteredAlp.append('a');
break;
}
}
System.out.println(alteredAlp.toString());
}
}
public class CharObfuscator {
public static final String ALPHABET = "abc";
public static String obfuscate(String obfuscateThis) {
char bottomLevel = ALPHABET.charAt(0); // its an 'a' (int 97)
char topLevel = ALPHABET.charAt(ALPHABET.length() - 1); // its an 'c' (int 99)
StringBuilder stringBuilder = new StringBuilder();
for (char character : obfuscateThis.toLowerCase().toCharArray()) {
if ((character - bottomLevel + 1) % (topLevel - bottomLevel + 1) != 0) {
stringBuilder.append(++character);
} else {
stringBuilder.append(bottomLevel);
}
}
return stringBuilder.toString();
}
public static void main(String[] args) {
System.out.println(obfuscate("abccbaaabbcc"));
}
}
bcaacbbbccaa