java请任意输入东西,判断是数字和空格

import java.util.Scanner;
public class kk
{
public static void main(String args[])
{
Scanner scanner = new Scanner(System.in);
System.out.println("请任意输入东西,判断是数字和空格");
String line = scanner.nextLine();
char[] figures = line.toCharArray();
char[] numbers={'0','1','2','3','4','5','6','7','8','9',' '};
for(int i=0;i<figures.length;i++)
{
for (int j=0;i<numbers.length;i++)
{
if(figures[i]==numbers[j])
{
System.out.println("是数字和空格");
}
else
{
System.out.println("不是数字和空格");
}
}
}
}
}
我是这样编写的,判断不了.
需要的结果:输入12 34 56
输出:是数字和空格
输入:87jh hg
输出:不是数字和空格
我觉得是在第二个for语句有问题.是什么问题呢?如何改,谢谢!

第1个回答  2007-11-30
public class TestStr {

public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
System.out.println("请任意输入东西,判断是数字和空格");
String line = scanner.nextLine();
char[] figures = line.toCharArray();
char[] numbers = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',' '};
boolean flag;
for (int i = 0; i < figures.length; i++) {
flag = false;
for (int j = 0; j < numbers.length; j++) {
if (figures[i] == numbers[j]) {
flag = true;
break;
}
}

if(!flag){
System.out.println("不是数字和空格");
return;
}
}

System.out.println("是数字和空格");
}
}

还可以对使用正则表达式,更简单:
public class TestStr {

public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
System.out.println("请任意输入东西,判断是数字和空格");
String line = scanner.nextLine();
Pattern p = Pattern.compile("[\\s\\d]*");
if(p.matcher(line).matches()){
System.out.println("是数字和空格");
}else{
System.out.println("不是数字和空格");
}
}

}
第2个回答  2007-11-30
如果只需要判断这个,用一个循环就可以判断了。
//package com.color.program;

import java.util.Scanner;

public class CheckInput {

public static void main(String[] args){
int numcount = 0;
int charcount = 0;
int spacecount = 0;
Scanner s = new Scanner(System.in);
System.out.println("请输入字符");
String str = s.nextLine();

char[] ch = str.toCharArray();
for(int i=0;i<ch.length;i++){
if(ch[i]>='0' && ch[i]<='9'){
numcount++;
}else if(ch[i] == 32){
spacecount++;
}else{
charcount++;
}
}
System.out.print("你输入的字符串包含:");
if(numcount>0){
System.out.print("数字");
}
if(spacecount>0){
System.out.print(" 空格");
}
if(charcount>0){
System.out.print(" 其它字符。");
}

}

}本回答被提问者采纳
第3个回答  2007-11-30
你的程序判断输入之后只能返回两个结果("是数字和空格")以及("不是数字和空格"),只要你输入的条件不满足数字和空格,那么它就只能输出不是数字和空格阿! 没别的结果啊!

另外注意命名规范!
第4个回答  2007-11-30
for (int j=0;i<numbers.length;i++) 这句错了改为
for (int j=0;j<numbers.length;j++)
相似回答