我提示用户输入一个号码并尝试确定该号码中偶数,奇数和零的数量
elementA
我被困在这个地区; " first_char"没有返回我想要/需要的数字值。
host-element
答案 0 :(得分:0)
嗨看看这一行:
<div class="tag-group">
<p>
<a href="/tag/beer">beer</a>
</p>
<p>
<a href="/tag/cheese">cheese</a>
</p>
</div>
您可能想要使用:
user_num = scan.next (); // this will scan your user input, but does not jump to the next line
你的user_num = scan.nextLine();
方法也犯了一个错误。
这个方法需要一个char。你为这个方法提供了一个例如:
lastIndexOf(char)
这是有效的,因为java会将您的号码解释为ASCI号码。由ASCI代表的字符&#34; 0&#34;一片空白。你想要做的是搜索角色&#39; 0&#39;。如下所示:
first_char = user_num.lastIndexOf(0);
同样的平等:
first_char = user_num.lastIndexOf('0');
另一个通知。请使用驼峰案例而不是下划线。而不是user_num你应该写userNum。这是标准。
另一个通知。 first_char == 2 ---> first_char == '2';
方法将返回参数最后一次出现的次数。 e.g:
lastIndexOf()
我认为你想使用String test = "hello test";
test.lastIndexOf(e); // this will return 7 for it is the number ofthe last occurence of 'e'
这会返回指定位置的特征
最后通知。为什么要比较代表数字的字符值? 为什么不这样做:
int userNum = Integer.valueOf(yourCharHere)。
<强>更新强>
如果我正确理解了您的评论,那么您的&#39; X&#39;在下面的代码段中由用户
定义first_char = userNum.charAt(X);
如果我说得对你有问题,因为你不知道用户的输入有多长。我没有将各个数字指定给变量,而是执行以下操作:
//将String解析为int int userNum = Integer.valueOf(yourUserInputHere); Arraylist singleDigits = new ArrayList()&lt;&gt ;;
charAt(0)
//撤消您的数字列表 Collections.reverse(singleDigits);
示例输入://This goes through all digits of your number starting with the last digits
while (userNum > 0) {
singleDigits.add( userNum % 10);
userNum = userNum / 10;
}
您的列表应如下所示:13467
这使您可以通过调用以下方式获得单个数字:
[1],[3],[4],[6],[7]
我希望有帮助
答案 1 :(得分:0)
首先创建包含奇数/偶数/零数字的集合:
Set<Integer> odds = "13579".chars().boxed().collect(Collectors.toSet());
Set<Integer> evens = "02468".chars().boxed().collect(Collectors.toSet());
Set<Integer> zero = "0".chars().boxed().collect(Collectors.toSet());
然后从用户那里获得输入
Scanner scan = new Scanner(System.in);
System.out.println("Choose a number:");
String number = scan.next();
scan.close();
逐个字符地解析number
以找出每组匹配的位数:
long numberOfOdds = number.chars().filter(odds::contains).count();
long numberOfEvens = number.chars().filter(evens::contains).count();
long numberOfZeros = number.chars().filter(zero::contains).count();
最后,显示结果:
System.out.println("There are " + numberOfEvens + " even numbers, " + numberOfOdds + " odd numbers, and " + numberOfZeros + " zeros in ");