如何在循环中添加不同的字符串?
我的例子:
拥有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);
答案 0 :(得分:1)
我想,使用System.out.print()
代替System.out.println()
可以在这里使用。
答案 1 :(得分:1)
在循环之前创建StringBuilder
的实例,并重复调用append
方法以构造输出字符串。完成结果字符串后,调用toString
获取并打印最终结果。
StringBuilder answerBuilder = new StringBuilder();
while( ... ) {
...
answerBuilder.append("L");
...
answerBuilder.append("R");
...
}
String answer = answerBuilder.toString();
保持StringBuilder
超出打印方式的一个优点是,您可以返回并在打印之前更改您构建的字符串的开头或中间。
答案 2 :(得分:1)
如果你想要最后一个答案,只需使用StringBuilder
并附加你显示的每个字符串,最后只显示这个StrigBuilder
变量。