Iva*_*nin 0 java string replace char
我正在尝试交换字符串中的第一个和最后一个字符,所以我所做的是我能够检索它的第一个和最后一个字符,但现在很难将它们放在一起:
String name="pera";
char[] c = name.toCharArray();
char first = c[0];
char last = c[c.length-1];
name.replace(first, last);
name.replace(last, first);
System.out.println(name);
Run Code Online (Sandbox Code Playgroud)
虽然我得到变量'first'是"p"的值,而变量'last'是"a"的值,但这些方法replace()没有出现有效的结果,因为名称保持不变.有没有人知道如何完成这个?
1)字符串在Java中是不可变的.所以name.replace(first, last)不会修改name但会返回一个新的String.
2) String#replace(char oldChar,char newChar)用newChar替换此字符串中出现的所有oldChar.
例如:
System.out.println("aaaddd".replace("a","d"));
Run Code Online (Sandbox Code Playgroud)
会给 :
dddddd
Run Code Online (Sandbox Code Playgroud)
可能的解决方案:如果将您转换String为a char[],则可以轻松交换字符:
public static String inverseFirstAndLast(String str){
char[] c = str.toCharArray();
Character temp = c[0];
c[0] = c[c.length-1];
c[c.length-1]=temp;
return new String(c);
}
Run Code Online (Sandbox Code Playgroud)