替换字符串中的字符

时间:2016-09-12 17:35:02

标签: java

我需要替换字符串中的值:

public static String replaceVals(String str) {
  String[] array = str.split("");
  String newStr = "";
  for (int i = 0; i < array.length; i++) {
    newStr += (array[i] == "T") ? "F" : "T";
  }
  return newStr;
}

结果失败:

input:           "TFF"
expected output: "FTT"
actual output:   "FFF"

3 个答案:

答案 0 :(得分:1)

我只是将给定的String转换为char数组,修改数组,并使用修改后的char数组返回一个新的String。

public static String replaceVals(String str) {
    String[] array = str.toCharArray();
    for (int i=0; i<array.length;i++) {
        array[i] = array[i] == 'T' ? 'F' : 'T';
    }
    return new String(array);
}

答案 1 :(得分:0)

您应该使用.equals代替==

==检查as.equals检查值的引用

public static String replaceVals(String str) {
  String[] array = str.split("");
  String newStr = "";
  for (int i = 0; i < array.length; i++) {
    newStr += (array[i].equals( "T")) ? "F" : "T";
  }
  return newStr;
}

答案 2 :(得分:0)

您可以在比较字符时使用==,而不是分成字符串数组,您可以使用String.toCharArray来获取字符数组。然后,当你比较时,你需要使用单引号创建一个字符。

public static String replaceVals(String str) {
    char[] array = str.toCharArray();
    String newStr = "";
    for (int i = 0; i < array.length; i++) {
      newStr += (array[i] == 'T') ? "F" : "T";
    }
    return newStr;
}