所以只是为了给一个小方向,我有这个任务,我应该打印出输入的反向。例如:如果有人输入dylan,则打印出nalyd。我也应该使用for循环和子字符串完成此操作。
这是我的代码:
Scanner kb = new Scanner (System.in);
String name;
System.out.println("What is your name?");
name = kb.next();
int x = name.length();
for (name.substring(x,x); x>-1; x-=1)
{
System.out.print(name.substring(x));
}
这将打印出“nanlanylanDylan”,但显然这不是我想要的。 只是想找到一种方法来解决这个问题,我知道我可以使用其他方法,比如charAt等,但我只是想使用子串。
答案 0 :(得分:2)
String.substring(x)
返回从位置x开始直到结束的整个字符串。 two-argument form String.substring(begin, end)
是您砍掉单个字符所需要的。您还应该将x最初减少1到范围内。循环的固定版本:
int x = name.length() - 1;
for (name.substring(x,x); x>-1; x-=1)
{
System.out.print(name.substring(x, x + 1));
}
for循环初始化中的额外name.substring(x,x);
顺便说一句,没有做任何事情。循环的固定和整理版本:
for (int x = name.length() - 1; x >= 0; x--)
{
System.out.print(name.substring(x, x + 1));
}
答案 1 :(得分:1)
如果我们只对一个字符进行子串,则子串可以像charAt()一样工作。为此,我们需要获取我们想要的当前字母的位置,并将其子串出来。
String name;
for (int i = name.length() - 1; i >= 0; i--) {
System.out.print(name.substring(x, x+1));
}
请注意,substring()的第一个参数是inclusive
,substring()的第二个参数是exclusive
,所以我们只得到一个参数为(x, x+1)
的字符。
String name = "John";
name.substring(0, 1); //returns 'J'