当用户输入值时,循环中的函数第一次跳过"否则工作正常......为什么?

时间:2015-03-20 13:36:11

标签: java for-loop

 import java.util.*;

    public class holes{

        public static void main(String[] args){
            String onec="ADOPQR";
            String twoc="B";
            int testcases=0;
            Scanner userinput=new Scanner(System.in);
            System.out.println("Enter the number of testcases");
            testcases=userinput.nextInt();
            int ones=0;
            int twos=0;
            String[] list=new String[testcases];
            for(int i=0; i<testcases; i++){
                String temp;
                System.out.print("Now enter the string " + (i+1));
                temp=userinput.nextLine();
                list[i]=temp;
            }

            for(int i=0; i<list.length; i++){
                for(int j=0; j<list[i].length(); j++){
                    for(int k=0; k<twoc.length(); k++){
                        if(list[i].charAt(j) == onec.charAt(k))
                            ones++;
                        else if(list[i].charAt(j) == twoc.charAt(0))
                        {
                            twos++;
                            break;
                        }
                        else;


                    }

                }
                System.out.println(ones + "  " + twos);
                ones=twos=0;
            }

            userinput.close();

        }

    }
  

这是问题的解决方案   文中的oles   问题代码:HOLES
  提交提交   此问题的所有提交都可用。

厨师在一张纸上写了一些文字,现在他想知道文中有多少个洞。什么是洞?如果您将纸张视为平面并将字母视为平面上的曲线,则每个字母将平面划分为区域。例如,字母&#34; A&#34;,&#34; D&#34;,&#34; O&#34;,&#34; P&#34;,&#34; R&#34;将平面划分为两个区域,因此我们说这些字母每个都有一个洞。同样,字母&#34; B&#34;有两个洞和字母,如&#34; C&#34;,&#34; E&#34;,&#34; F&#34;,&#34; K&#34;没有洞。我们说文本中的孔数等于文本字母中的孔总数。帮助Chef确定文本中有多少个孔。 输入

第一行包含单个整数T <= 40,即测试用例的数量。 T测试案例如下。每个测试用例的唯一行包含仅由英文字母的大写字母组成的非空文本。文本的长度小于100.输入中没有任何空格。 输出

对于每个测试用例,输出一行包含相应文本中的孔数。 实施例

输入: 2 CODECHEF DRINKEATCODE

输出: 2 5

1 个答案:

答案 0 :(得分:1)

testcases=userinput.nextInt();之后添加如下行:

 userinput.nextLine();

nextInt api不会消耗返回键(在输入数字时按下),因此您需要使用nextLine方法使用它。