用Java代码输入格式: 在一行中输入一个字符串。 输出格式: 如果输入的字符串中不含有数字 则程序结束,在一行打印输出“字符串中不含有数字” 如果输入的字符串中含有数字,则输出两行 在第一行输出输入的字符串中的数字字符串。 在第二行输出各数字0-9出现的次数。
时间: 2024-11-06 22:24:44 浏览: 32
你可以使用Java的`Scanner`类从用户那里获取输入,并利用正则表达式检查字符串中是否包含数字。下面是一个简单的示例程序:
```java
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String input = scanner.nextLine();
// 使用正则表达式查找数字
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher(input);
if (!matcher.find()) { // 如果找不到数字
System.out.println("字符串中不含有数字");
} else {
// 输出数字字符串和它们的频率
StringBuilder numberString = new StringBuilder();
int[] count = new int[10]; // 初始化0-9的计数数组
while (matcher.find()) {
numberString.append(matcher.group()).append(",");
count[Character.getNumericValue(matcher.group().charAt(0))]++; // 更新对应的计数
}
numberString.deleteCharAt(numberString.length() - 1); // 移除最后一个逗号
System.out.println("输入的字符串中的数字: " + numberString.toString());
for (int i = 0; i < 10; i++) {
if (count[i] > 0) {
System.out.println("数字" + (i + '0') + ": " + count[i]);
}
}
}
scanner.close();
}
}
```
在这个程序中,我们首先创建一个`Pattern`对象来匹配数字,并使用`Matcher`对象尝试找到输入字符串中的第一个数字。如果没有找到,我们会输出相应的提示;如果有找到,我们将数字添加到`numberString`并更新计数数组`count`。最后,我们按需输出每个数字及其出现的次数。
阅读全文