在循环中添加输出/字符串

时间:2017-12-03 11:15:21

标签: java string loops output

如何在循环中添加不同的字符串?

我的例子:

拥有Stern-Brocot树路径查找器。唯一的问题是它应该将输出作为一行。 完整代码:

import java.io.*;
import java.util.*;
public class Main {
  public static void main(String[] args) {
    double p, q;
    Scanner in = new Scanner(System.in);
    int[] vars = new int[2];
    for(int i = 0; i < vars.length; i++)
      vars[i] = in.nextInt();
    p = vars[0];
    q = vars[1];

  double p1 = 0 ;
  double p2 = 1 ;

  double q1 = 1 ;
  double q2 = 0 ;
  while( p1+p2 != p  && q1+q2 != q )
  {
      if (( p1+p2 )/ (q1+q2 ) < p / q) 
      {
          System.out.println("R");
          p1 += p2;
          q1 += q2;
      } 
      else if( ( p1+p2 ) / ( q1+q2 ) > p/q )
      {
          System.out.println("L");
          p2 += p1;
          q2 += q1;
      }
    }
  }
}

主要部分。我必须解决的部分。

while( p1+p2 != p  && q1+q2 != q )
  {
      if (( p1+p2 )/ (q1+q2 ) < p / q) 
      {
          System.out.println("R");
          p1 += p2;
          q1 += q2;
      } 
      else if( ( p1+p2 ) / ( q1+q2 ) > p/q )
      {
          System.out.println("L");
          p2 += p1;
          q2 += q1;
      }
    }
  }

问题:我怎么能这样做,每次它完成循环,它会将答案添加到完整答案中,一切完成后,它会在一行中抛出完整的答案。 几乎就是这样:

answer = answer + ("R");
answer = answer + ("L");
System.out.println(answer);

3 个答案:

答案 0 :(得分:1)

我想,使用System.out.print()代替System.out.println()可以在这里使用。

答案 1 :(得分:1)

使用StringBuilder

在循环之前创建StringBuilder的实例,并重复调用append方法以构造输出字符串。完成结果字符串后,调用toString获取并打印最终结果。

StringBuilder answerBuilder = new StringBuilder();
while( ... ) {
    ...
    answerBuilder.append("L");
    ...
    answerBuilder.append("R");
    ...
}
String answer = answerBuilder.toString();

保持StringBuilder超出打印方式的一个优点是,您可以返回并在打印之前更改您构建的字符串的开头或中间。

答案 2 :(得分:1)

如果你想要最后一个答案,只需使用StringBuilder并附加你显示的每个字符串,最后只显示这个StrigBuilder变量。