如何获取用户输入的所有赔率数字。示例:输入:“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 + " ");
}
}
答案 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)
您没有迭代输入字符,而是在1
和10
之间迭代数字。
你要做的是:
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的正则表达式包来识别几率。