对于我正在研究的实验室,它给了我这个帮助:
output = ""
output += word
loop i that runs
{
output += word.charAt(i)
loop j
{
output += " "
}
output += word.charAt( ______ )+ "\n"
}
StringBuffer sb = new StringBuffer(word);
output += word backwards
这是我现在的代码:
import static java.lang.System.*;
class BoxWord
{
private String word;
public BoxWord()
{
word="";
}
public BoxWord(String s)
{
word = s;
}
public void setWord(String w)
{
word = w;
}
public String toString()
{
String output="";
output += word + "\n";
for(int i =1; i<word.length(); i++)
{
output += word.charAt(i);
for(int j =i+1; j<word.length()-i; j++)
{
output += " ";
}
output += word.charAt((word.length()-i)) + "\n";
}
StringBuffer sb = new StringBuffer(word);
output += sb;
return output+"\n";
}
}
这是我的交叉引用的跑步者类:
import static java.lang.System.*;
import java.util.Scanner;
public class Lab11f
{
public static void main( String args[] )
{
Scanner keyboard = new Scanner(System.in);
String choice="";
do{
out.print("Enter the word for the box : ");
String value = keyboard.next();
//instantiate a BoxWord object
BoxWord bw = new BoxWord(value );
//call the toString method to print the triangle
System.out.println( bw );
System.out.print("Do you want to enter more data? ");
choice=keyboard.next();
}while(choice.equals("Y")||choice.equals("y"));
}
}
目前输出如下:
方
q e
你好
AA
RU
当量
方
当它需要像这样:
SQUARE
Q&GT;&GT;&GT;&GT; R
U&GT;&GT;&GT;&gt;一种
A&GT;&GT;&GT;&GT;û
R&GT;&GT;&GT;&GT; Q
ERAUQS (其中“&gt;”表示空格,最后一列应对齐btw)
这是指向实验表格的Google文档版本的链接:https://docs.google.com/open?id=0B_ifaCiEZgtcVTAtT2t0ajRPLUE
更新:
好的,这大部分都有效。我现在收到这个:
方
Q&GT;&GT;&GT;&GT,E
U&GT;&GT;&GT;&GT; R
A&GT;&GT;&GT;&gt;一种
R&GT;&GT;&GT;&GT;û
e取代;&GT;&GT;&GT; Q
方
更新#2 现在我的结果是这样的:
方
Q&GT;&GT;&GT;&GT,E
U&GT;&GT;&GT;&GT; R
A&GT;&GT;&GT;&gt;一种
R&GT;&GT;&GT;&GT;û
erauqs
答案 0 :(得分:0)
您的问题出在第二个循环中。您想要添加等于word.length - 2
的空格。
for(int j = 0; j < word.length()-2; j++)
{
output += " ";
}
而不是
for(int j =i+1; j<word.length()-i; j++)
{
output += " ";
}
编辑:
没看到你得到了太多。并且底部方块没有反转。
for(int i =1; i<word.length()-1; i++) // -1 so the last letter is not added
{
output += word.charAt(i);
for(int j =i+1; j<word.length()-i; j++)
{
output += " ";
}
output += word.charAt((word.length()-i-1)) + "\n";
}
要反转字符串,您必须使用StringBuffer.reverse()
output += sb.reverse();