您的位置:首页 > 编程语言 > Java开发

浙江大学PAT (Basic Level) Practice (中文)1009说反话JAVA实现代码及分析

2019-03-09 13:27 351 查看

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(" ");
}
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐