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()调用中的第一个参数(符号位置)错误-请参阅我的编辑。