华为机试练习_04:字符串分隔

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
发布了716 篇原创文章 · 获赞 130 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/qq_42764468/article/details/105394793