字符串得到错误的值
The string is getting the wrong value
我正在尝试构建一个类似于 11 11
的字符串,但我遇到了问题,我正在为 start
获取以下字符串 98 11
而不是 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;
有效:
String start = (((number + number) + " ") + number) + number;
所以你得到 number + number
(正在对 int
执行数字提升)和 then 字符串连接。
听起来你想要:
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 newName = "111";
Character number = newName.charAt(2); // here number is 1
Character numberBefore = newName.charAt(1); // here numberBefore is 1
if (Character.getNumericValue(numberBefore) > 0) { // checking against numeric rather than ascii
System.out.println("ASCII value of char " + (int) number); // ASCII code for '1' = 49
String start = String.valueOf(number) + String.valueOf(number) + " " + number + number; // here start is `98 11`
System.out.println(start);
}
}
我正在尝试构建一个类似于 11 11
的字符串,但我遇到了问题,我正在为 start
获取以下字符串 98 11
而不是 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;
有效:
String start = (((number + number) + " ") + number) + number;
所以你得到 number + number
(正在对 int
执行数字提升)和 then 字符串连接。
听起来你想要:
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 newName = "111";
Character number = newName.charAt(2); // here number is 1
Character numberBefore = newName.charAt(1); // here numberBefore is 1
if (Character.getNumericValue(numberBefore) > 0) { // checking against numeric rather than ascii
System.out.println("ASCII value of char " + (int) number); // ASCII code for '1' = 49
String start = String.valueOf(number) + String.valueOf(number) + " " + number + number; // here start is `98 11`
System.out.println(start);
}
}