从键盘输入一个字符串 判断这个字符串有几个字母和数字 如果数字个数小于10 则将所有数字组成一个整数输出
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
String num = str.chars().
mapToObj(c -> (char) c).
filter(Character::isDigit).
map(Object::toString).
collect(Collectors.joining(""));
if(num.length() <= 10){
System.out.println(Integer.valueOf(num));
}
}
没考虑开头数字是0的情况,不过所有数字的字符串已经给你了,想考虑这种情况可以自己改。
给你个思路吧 这个你好好看一下 很简单
首先定义一个string类型的参数就叫num吧
然后我们先去输入一个字符串这个简单
Scanner Sc=new Scanner(System.in);
String next = sc.next();
next就是我们获取到的参数了
然后for循环
在循环里边
try {
String ss = String.subString(i,i+1);
Integer.parseInt(ss);
num+= ss;
} catch (Exception e) {
e.printStackTrace();
}
这样循环一遍就会获取到所有的数字并且是string类型的
string的length判断一下小不小于10 小于了就
System.out.println(Integer.parseInt(num));
输出一下就可以了
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
char[] strToChar = str.toCharArray();
StringBuilder sb = new StringBuilder();
// int flag = 0;
for(char c : strToChar){
if(Character.isDigit(c)){
// if(c - '0' == 0 && flag == 0){
// continue;
// }else{
// flag = 1;
sb.append(c);
// }
}
}
if (sb.length() <= 10){
System.out.println(Integer.valueOf(new String(sb)));
}
}
给个基础的,想去掉开头的0的话把注释去掉就行
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int n = str.length();
StringBuilder sb = new StringBuilder();
//这一句稍微优化了一下,如果数字长度等于10不用输出了,也不用继续追加,直接跳出
//比如:12345678901abcdefgwergwetwet123456
for(int i = 0; i < n && sb.length()<10; i++){
char c = str.charAt(i);
if(Character.isDigit(c)){
sb.append(c);
}
}
if(sb.length()<10){
//这个地方,前面写的不对,如果包括10个数字,则需要注意边界10个9,超出了Integer范围,必须用long,以下测试:
// System.out.println(Integer.MAX_VALUE>=Math.pow(10,10)-1);
//题目写的是小于,那就用Integer
System.out.println(Integer.parseInt(sb.toString()));
}