Java StringBuilder,将索引替换为变量

Java StringBuilder,将索引替换为变量,java,replace,stringbuilder,Java,Replace,Stringbuilder,如何替换索引的特定索引?我尝试了一个StringBuilder,问题只是我想用一个变量替换索引: if (org == m2) { System.out.println(eingabe + " ist eine g\u00fcltige ISBN."); } else { if (eingabe.length() ==13) { StringBuilder correct = new StringBuilder(eingabe);

如何替换索引的特定索引?我尝试了一个
StringBuilder
,问题只是我想用一个变量替换索引:

  if (org == m2) {
    System.out.println(eingabe + " ist eine g\u00fcltige ISBN.");
  }
  else {

    if  (eingabe.length() ==13) {
        StringBuilder correct = new StringBuilder(eingabe);
        correct.setCharAt(13, m2);
        System.out.println(eingabe + " ist eine fehlerhafte ISBN. \nG\u00fcltig w\u00e4re " + correct);
    }
    else if (eingabe.length() ==18) {
        StringBuilder correct = new StringBuilder(eingabe);
        correct.setCharAt(18, m2);
        System.out.println(eingabe + " ist eine fehlerhafte ISBN. \nG\u00fcltig w\u00e4re " + correct);        
    }
  }
错误如下:

    isbn.java:36: error: method setCharAt in class AbstractStringBuilder cannot be applied to given types;
            correct.setCharAt(13, m2);
                   ^
  required: int,char
  found: int,int
  reason: actual argument int cannot be converted to char by method invocation conversion
isbn.java:41: error: method setCharAt in class AbstractStringBuilder cannot be applied to given types;
            correct.setCharAt(18, m2);
                   ^
  required: int,char
  found: int,int
  reason: actual argument int cannot be converted to char by method invocation conversion
你应该这样做

correct.setCharAt(13, (char)m2);
相反,因为
setCharAt()
的第二个参数应该是
char
类型。隐式转换仅适用于促销(从较窄的类型转换为较宽的类型,例如从
char
-这是2个字节转换为
int
-这是4个字节),而不是相反。在后一种情况下,您应该执行如下显式转换:
(typeName)variableName

此外,如果原始
字符串的长度为13,则最后一个位置的索引将为12,而不是13,因为位置是从0开始编号的,而不是从1开始编号的。因此,替换最后一个符号的调用应为:

correct.setCharAt(12, (char)m2);
在第一种情况下,与第二种情况类似


希望有帮助

现在有以下错误:isbn.java:36:error:“.class”应为isbn.java:36:error:“;”应为isbn.java:36:error:表达式isbn的非法开始。java:36:error:“;”应为isbn.java:41:错误:'.class'应为
setCharAt()调用中的第一个参数(符号位置)错误-请参阅我的编辑。