Java 字符串获取了错误的值
我试图构建一个类似Java 字符串获取了错误的值,java,string,stringbuilder,Java,String,Stringbuilder,我试图构建一个类似11 11的字符串,但我面临的问题是start以下字符串98 11而不是11 我怎样才能解决这个问题 谢谢你的帮助 Character number = newName.charAt(2); //here number is 1 Character numberBefore = newName.charAt(1); //here numberBefore is 1 try (PrintWriter writer = new PrintWriter(path+File.sepa
11 11
的字符串,但我面临的问题是start
以下字符串98 11
而不是11
我怎样才能解决这个问题
谢谢你的帮助
Character number = newName.charAt(2); //here number is 1
Character numberBefore = newName.charAt(1); //here numberBefore is 1
try (PrintWriter writer = new PrintWriter(path+File.separator+newName);
Scanner scanner = new Scanner(file)) {
boolean shouldPrint = false;
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
if(numberBefore >0 ){
String start= number+number+" "+number+number; //here start is `98 11`
}
是的,这是由于
+
的关联性造成的
这:
实际上:
String start = (((number + number) + " ") + number) + number;
因此,您将得到number+number
(它将执行到int
的数字提升),然后是字符串连接
听起来你想要:
String numberString = String.valueOf(number);
String start = numberString + numberString + " " + numberString + numberString;
或者:
String start = String.format("%0c%0c %0c%0c", number);
是的,这是由于
+
的关联性造成的
这:
实际上:
String start = (((number + number) + " ") + number) + number;
因此,您将得到number+number
(它将执行到int
的数字提升),然后是字符串连接
听起来你想要:
String numberString = String.valueOf(number);
String start = numberString + numberString + " " + numberString + numberString;
或者:
String start = String.format("%0c%0c %0c%0c", number);
是的,这是因为+ 您也可以尝试下面的代码
String c1 =Character.toString(number);
String s =c1+c1+" "+c1+c1;
是的,这是因为+ 您也可以尝试下面的代码
String c1 =Character.toString(number);
String s =c1+c1+" "+c1+c1;
这应该有效:字符串开始=数字+“”+数字+“”+数字+“”+数字;或字符串start=“”+数字+数字+”+数字+数字;它对我来说是这样的
stringstart=newstringbuilder().append(number).append(number).append(“”).append(number).append(number).toString()代码>太多:)这应该有效:字符串开始=数字+“”+数字+“”+数字+“”+数字;或字符串start=“”+数字+数字+”+数字+数字;它对我来说是这样的stringstart=newstringbuilder().append(number).append(number).append(“”).append(number).append(number).toString()代码>也:)如果(numberBefore>0){}
语句正常工作,有没有办法将char
转换为字符串?我试着这样做,但是在=(int)newName.charAt(1)之前,我得到了错误的值intnumberbefore=(int)
@MrPencil:这是一个完全不同的问题-听起来你不想把字符
转换成字符串
,而是转换成整数
。。。我建议您做一些研究,如果仍然有问题,可以问一个新问题。是否有任何方法将char
转换为字符串以使if(numberBefore>0){}
语句正常工作?我试着这样做,但是在=(int)newName.charAt(1)之前,我得到了错误的值intnumberbefore=(int)
@MrPencil:这是一个完全不同的问题-听起来你不想把字符
转换成字符串
,而是转换成整数
。。。我建议你做一些研究,如果你还有问题,问一个新问题。