Problem: HJ2 计算某字符出现次数
题目描述
描述
- 输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;
- 长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(每个字符串长度小于等于100)
输出描述:
依次输出所有分割后的长度为8的新字符串
示例1
输入:
abc
输出:abc00000
解题思路
将字符串分割为字符数组,并且全部转为大写,并循环。
算法流程
- 导入
java.util.Scanner类,用于读取用户输入。- 创建一个
Scanner对象in,用于接收用户输入。- 使用
while循环,判断是否还有输入数据。- 使用
in.nextLine()方法读取一行用户输入,并将其存储在字符串变量s中。- 如果
s的长度不是8的倍数,通过添加零来使其成为8的倍数,即s = s + "000"。- 打印输出字符串
s。- 循环继续,等待下一次用户输入。
代码
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
// 注意 hasNext 和 hasNextLine 的区别
String word = in.nextLine().toUpperCase();
String cha = in.nextLine().toUpperCase();
int count = 0;
for(int i = 0; i < word.length(); i++) {
if(word.charAt(i) == cha.charAt(0)) count++;
}
System.out.print(count);
}
}
复杂度
- 时间复杂度:
添加时间复杂度, 示例:
- 读取用户输入的时间复杂度为 O(1),因为每次只读取一行输入。
- 循环遍历用户输入的时间复杂度为 O(n),其中 n 是用户输入的字符数。
- 打印输出的时间复杂度为 O(1),因为每次只打印一行输出。
- 空间复杂度:
添加空间复杂度, 示例:
- 创建了一个 Scanner 对象和一个字符串变量,它们的空间复杂度为 O(1)。
- 用户输入的字符串变量的空间复杂度为 O(n),其中 n 是用户输入的字符数。