1、题目描述
2、思路分析
2.1 连续输入2个字符串?
需要先来理解Scanner类中的很关键的几个方法:
1、Scanner主要提供了两个方法来扫描输入:
hasNextXxx()
:输入源中是否还有下一个输入项,其中Xxx可以是Int、Long等代表基本数据类型的字符串。如果需要判断是否包含下一个字符串,可以省略Xxx.nextXxx()
:获取输入源中下一个输入项。
在默认情况下,Scanner使用空格和回车作为多个输入项之间的分隔符。
public class ScannerDemo1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//判断是否有下一个输入项,有就返回true,以空格作为多个输入项之间的分隔符
while(sc.hasNext()) {
//打印该输入项
System.out.println("键盘输入的内容是:" + sc.next());
}
}
}
2、事实上,Scanner提供了两个简单的方法来逐行读取:
- boolean hasNextLine():输入源中是否还有下一行。
- String nextLine():获取输入源中的下一行的字符串。
即只用回车作为输入项的分隔符,下一行就是一个输入项
public class ScannerDemo2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//判断是否有下一行,如果有下一行就返回true
while(sc.hasNextLine()) {
//打印该行字符串
System.out.println("键盘输入的内容是:" + sc.nextLine());
}
}
}
2.2 按长度8拆分每个字符串后输出到新的字符串数组
用到str.substring()函数:
(1)str.substring(i)意为截取从字符索引第i位到末尾的字符串。
(2)str.substring(i,j)意为截取索引第i位到第(j-1)位字符串。包含i,不包含j。
3、代码实现
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
String str = scanner.next();
//将字符串的长度增至8的倍数
while (str.length() % 8 != 0) {
str += "0";
}
//按照长度8截取这个字符串放入新的字符串数组中
String[] stringArr = new String[str.length() / 8];
for (int i = 0; i < stringArr.length; i++) {
stringArr[i] = str.substring(8 * i, 8 * (i + 1));
}
for (String newStr : stringArr) {
System.out.println(newStr);
}
}
}
}
abc
abc00000
123456789
12345678
90000000