字符串替换方法不起作用

public static String capitalise(String str) { if (str != null || !"".equals(str)) { char chr=str.charAt(0); String check= Character.toString(chr); String check1= check.toUpperCase(); char chr1=check1.charAt(0); str.replace(chr, chr1); return str; } else { System.out.println("Not a valid String"); } return str; } 

您的问题是您没有从str.replace返回结果。 字符串是不可变的

为什么你不简单地使用:

 String str = "THIS IS my TEST strinG"; String my_string = str.substring(0,1).toUpperCase() + str.substring(1).toLowercase(); 

请确保您必须为String分配值

  str = str.replace(chr, chr1); 
  str.replace(chr, chr1); 

返回一个新字符串,该字符串是使用newChar替换此字符串中出现的所有oldChar。 更换
但是你没有存储这个价值。 所以你可以使用以下代码

 str = str.replace(chr, chr1);