Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符串获取了错误的值_Java_String_Stringbuilder - Fatal编程技术网

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:这是一个完全不同的问题-听起来你不想把
字符
转换成
字符串
,而是转换成
整数
。。。我建议你做一些研究,如果你还有问题,问一个新问题。