大家好,又见面了,我是你们的朋友全栈君。
今天在项目之余,到杭电上刷了一道题,那道题是1062题,程序本身不是难,但是在里面实现过程中,突然发现用的Scanner类进行输入的,用到了next和nextLine这两个方法,在输入过程中也遇到一些问题,接下来进行讲述自己遇到的问题,以及如何解决的
杭电1062题目:
Text Reverse
Each test case contains a single line with several words. There will be at most 1000 characters in a line.
Remember to use getchar() to read ‘\n’ after the interger T, then you may use gets() to read a line and process it.
大概的意思就是:
import java.util.Scanner;
public class Main {
public static String reverse1(String s) {
int length = s.length();
if (length <= 1)
return s;
String left = s.substring(0, length / 2);
String right = s.substring(length / 2, length);
return reverse1(right) + reverse1(left);
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int num = in.nextInt(); // 这里进行整数输入n 标注为:1
String str;
in.nextLine(); // 这里开始没有加,出现了问题 标注为:2
for (int i = 0; i < num; i++) {
str = in.nextLine(); // 这里就是用来输入整行字符串 标注为:3
String[] s = str.split(" ");
for (int j = 0; j < s.length; j++) {
if (j != s.length - 1)
{
String ss = reverse1(s[j]);
System.out.print(ss + " ");
}
else
{
String ss = reverse1(s[j]);
System.out.print(ss);
int p = str.length() - 1;
while (str.charAt(p) == ' ') {
System.out.print(' ');
p--;
}
System.out.println();
}
}
}
}
}
}
在上面代码的注释处,分别标记了1,2,3点:
更多精彩敬请关注公众号
Java极客思维
微信扫一扫,关注公众号
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142866.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...