我正在试图弄清楚如何将一个单词作为用户的输入,然后以不同的格式返回相同的字符串。
例如,输入“dog”需要显示为
d
OO
GGG
我只能使用for语句,而不能使用if语句......并且程序应该只有2个方法,第二个应该返回一个值。
我知道如何从用户那里获取输入,但是我对如何返回格式如上的字符串感到有点迷失。
这是一个家庭作业问题,所以我不希望任何人给我答案。我真的只是卡住了,不知道下一步该做什么。这是一个基本的java 1类,所以我不能使用太复杂的东西。
到目前为止,这是我未完成的代码。我知道它有很多问题>。<
import java.util.Scanner;
public class Lab06Edit {
public static void main(String[] args ) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter a word: ");
String input = keyboard.next();
wordAngle(input);
System.out.print("" + wordAngle(input));
}
public static String wordAngle(String word) {
String result = "";
for (int i=0; i<=input.length(); i++) {
System.out.println(input.charAt(i)*i +"\n");
return result;
}
}
}
答案 0 :(得分:0)
如果将char
乘以整数而不是char,则会转换为ASCII
代码,结果将为integer
。你应该concat
char String
来产生你想要的结果。请查看下面的预期输出代码:
public class Lab06Edit {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter a word: ");
String input = keyboard.next();
wordAngle(input);
}
public static void wordAngle(String input) {
for (int i = 0; i < input.length(); i++) {
String result = "";
for (int j = 0; j <= i; j++) {
result += input.charAt(i);
}
System.out.println(result);
}
}
}
答案 1 :(得分:0)
input.charAt(i)*i
一开始有点令人惊讶,但你正试图多封一封信。不出所料,java不喜欢这个,并在将它乘以之前将字母转换为数字。因此(在删除一些错误之后)狗的输入给出输出。在某种程度上,这是Java的错误string + string
。
0 % d=100, 0*100=0
111 % 0=111 1*111=111
206 % g=103 2*103=206
如果你想多次打印一些东西,那么最简单的方法(不一定是最好的方法,但这毕竟是功课)就是把它放在for循环中,你可以使用System.out.print而不是System .out .println以避免前进。在你的情况下,for循环中的for循环。或者,您可以逐个构建一个字符串,并将它们+
放在一个循环中(仍然不是最好但更好)并返回该字符串以在println语句中打印。试一试,看看你是否可以搞清楚,询问你是否需要更多提示。
for (int i=0; i<=input.length(); i++)
记住java中的所有内容都是零,所以如果某些内容的长度为3,则它包含元素0,1,2。您当前的代码有0,1,2,3。当您的代码到达神秘元素3时,它会返回String index out of range
异常。
你把return语句放在for循环中,我假设一个错误,你也改变了从使用变量名字到输入,再次假设一个错字