java - 字符串得到错误的值

标签 java string stringbuilder

我正在尝试构建一个类似 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);

关于java - 字符串得到错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30661924/

相关文章:

java - StaxEventItemWriter - 文件不可写问题

java - 链表的冒泡排序实现

python - 如何映射两个字符串之间的差异?

c# - 字符串连接是在内存中为链中的每个字符串分配新字符串,还是仅为被更改的字符串分配新字符串?

java - 什么是烫发空间?

java - 如何将方法参数String值作为Map对象的引用名

java - java中的字符串修改

c++ - 从文件末尾检索字符串时失败

java - switch 的替代方案——替换字符

java - 在 Java 中,如何有效地从 ArrayList<StringBuilder> 中删除重复项?