打印用户输入的奇数

时间:2013-12-03 13:01:29

标签: java

如何获取用户输入的所有赔率数字。示例:输入:“avhguhrgr18543”输出应为“153”,但在我的代码中它最多可以提供9个...我真的需要的代码只能根据用户输入得到奇数。

String s;
System.out.println("Input anything you want: ");
Scanner scanner = new Scanner(System.in);
s = scanner.nextLine();

int n = 10;
System.out.println("Odd Numbers are");
for(int i=1;i<=n;i++) {
  if(i%2!=0) {
    System.out.print(i + " ");
  }
}

5 个答案:

答案 0 :(得分:4)

尝试,

String s = "avhguhrgr18543";
for (int i = 0; i < s.length(); i++) {
  char ch = s.charAt(i);
  if (Character.isDigit(ch) && (ch & 1) == 1) {
                                    // Use bitwise & for performance
       System.out.print(ch);
    }
 }

答案 1 :(得分:2)

您没有迭代输入字符,而是在110之间迭代数字。

你要做的是:

for (int i = 0; i < s.length(); i++) {
    char next = s.charAt(i);
    if (Character.isDigit(next) && (next - '0') % 2 == 1) {
       System.out.print(next + " ");
    }
}

答案 2 :(得分:2)

尝试以下代码,

    String s; 
    System.out.println("Input anything you want: "); 
    Scanner scanner = new Scanner(System.in);
    s = scanner.nextLine();

    //int n = 10;
    System.out.println("Odd Numbers are"); 

    for(int i=0;i<s.length();i++) 
    { 
        char ch = s.charAt(i);
        if(Character.isDigit(ch)  &&  (ch % 2) !=0) 
        { 
            System.out.print(ch + " "); 
        } 
    } 

<强>输出

  

输入您想要的任何内容:
    123456个
    奇数是1 3 5

答案 3 :(得分:0)

使用isDigit()功能

for(i=0;i<s.length();i++)
{
    if(s[i].isDigit())
         //Convert it to int and find if it is odd. Then print it
}

答案 4 :(得分:0)

最好的方法是使用模运算符重用Java的正则表达式包来识别几率。