相关疑难解决方法(0)

字符串是不可变的,然后replace()如何工作?

我试图用它的最后一个替换字符串的第一个字母/字符,并且它是第一个字符串.例如abcd => dbca.字符串在Java中是不可变的,那么我们如何解释这个程序的行为呢?请看一下最终输出.str1没有char'a',但在最终输出中它出乎意料地......怎么样?// frontBack()的参数是String"abcd".

 public static void frontBack(String str) {
   String first= ""+str.charAt(0);
   System.out.println("first char is "+first);
   String last = ""+str.charAt(str.length()-1);
   System.out.println("last char is "+last);
   String str1;
   str1 = str.replace(""+str.charAt(0),last);
   System.out.println("String str1 is => "+str1);
   String str2 ;
   str2 = str1.replace(""+str1.charAt(str1.length()-1),first);
   System.out.println("String str2 is derived from str1(dbcd) which has no 'a' but o/p is =>  "+str2);    
  }
 /* Have a look at output:
                        first char is a
                        last char is d
                        String str1 is => dbcd
                        String str2 is derived …
Run Code Online (Sandbox Code Playgroud)

java string

1
推荐指数
2
解决办法
3304
查看次数

标签 统计

java ×1

string ×1