1009
说反话
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式:
测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。
输出格式:
每个测试用例的输出占一行,输出倒序后的句子。
我对这道题的理解是将输入的字符串以空格为间隔拆分开来,每个单词存入一个字符数组中,最后进行输出的时候将数组中的有效元素倒序输出。因为JAVA字符数组的默认值是\u0000,所以输出的时候要跳过这些无效字符。
具体代码实现如下:
import java.util.Scanner;
public class Main
{
public static void main (String[]args)
{
char a[][]=new char[81][81];
char b[]=new char[81];
int j=0;//a的行坐标
int k=0;//a的列坐标
Scanner input=new Scanner(System.in);
String s=input.nextLine();//nextline()可以得到从键盘上输入的空格符号保存在字符串中,而不是遇到空格就停止输入
b=s.toCharArray();
for(int i=0;i<s.length();i++)
{
if(b[i]==' ')
{
j++;
i++;
k=0;
}
a[j][k]=b[i];
k++;
}
for(int i=j;i>-1;i--)
{
for(char item:a[i])
{
if(item=='\u0000')//'\u0000'为JAVA字符数组初始化时得到的值
{
break;
}
System.out.print(item);
}
if(i>0)
{
System.out.print(" ");
}
}
}
}