本规范对标准输出没有响应

时间:2015-06-05 08:22:58

标签: java

此代码应该采用由随机的一对平衡括号组成的输入,如果平衡则返回true,如果不平衡则返回false 例如()[] =真; ((()))=真; {} [[]] = TRUE; [[] = false;

我似乎无法使用Scanner类从文件返回输入。

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        while(input.hasNext())
            {
            System.out.println(deal());
        }
    }
    public static boolean deal(){
        Scanner ivput = new Scanner(System.in);
        char[] charArray = {'{','}','(',')','[',']'};
        String first = ivput.next();
        char[] charArray1 = new char[first.length()];
        first.getChars(0,first.length(),charArray1,0);

        int p =0;
        int q = 0;
        int r = 0;
        int s= 0;
        int t = 0;
        int u = 0; 
        for (int y =0;y<charArray1.length;y++){

            if(charArray[0] == charArray1[y])
                p++;

            else if(charArray[1] == charArray1[y])
                q++;
            else if(charArray[2] == charArray1[y])
                r++;
            else if (charArray[3] == charArray1[y])
                s++;
            else if(charArray[4] == charArray1[y])
                t++;
            else if (charArray[5] == charArray1[y])
                u++;

            }

        if (p == q && r==s && t ==u)
            return true;

        else
            return false;
    }
}

1 个答案:

答案 0 :(得分:1)

问题是,创建了两个扫描程序实例。一个在主要功能,

strwidth

和另一个函数deal()

Scanner input = new Scanner(System.in);

当控件到达第二个实例创建时,通过获取System.in输入流重新创建扫描程序,因此先前输入的文本将丢失。在底线,您输入的第一行永远不会执行。

修改代码如下,以使第一行也正常工作,

Scanner ivput = new Scanner(System.in);