我输入[email protected]为什么我打印的结果是false,一个整形数呢?谢谢
public class Effiacy {
String[] sMail={"@","."};
public boolean isMail(String sPara)
{
for(int i=0;i<sMail.length;i++)
{
if(sPara.indexOf(sMail[i])==-1) return false;        
        }
        return true;
}

public static void main(String[] args) {
// TODO: Add your code here
Effiacy eff=new Effiacy();
String str=null;
try
{
str=Integer.toString(System.in.read());
}
catch(Exception e)
{
e.printStackTrace();
}
if(eff.isMail(str))
System.out.println("true");
else
System.out.println("false");
System.out.println(str);
}
}

解决方案 »

  1.   

    import java.io.*;
    public class Effiacy {
    String[] sMail={"@","."};
    public boolean isMail(String sPara)
    {
    for(int i=0;i<sMail.length;i++)
    {
    if(sPara.indexOf(sMail[i])==-1) return false;        
            }
            return true;
    }

    public static void main(String[] args) {
    // TODO: Add your code here
    Effiacy eff=new Effiacy();
    String str=null;
    try
    {
    BufferedReader in =
             new BufferedReader(
               new InputStreamReader(System.in));
        
         str = in.readLine() ; }
    catch(Exception e)
    {
    e.printStackTrace();
    }
    if(eff.isMail(str))
    System.out.println("true");
    else
    System.out.println("false");
    System.out.println(str);
    }
    }
      

  2.   

    帮你修改了一下!
    其实判断isMail不需要这么麻烦,用正则表达式就可以了.import java.io.*;
    public class Effiacy {
    String[] sMail={"@","."};
    private static BufferedReader in;
    public boolean isMail(String sPara){
    for(int i=0;i<sMail.length;i++){
    if(sPara.indexOf(sMail[i])==-1) return false;        
        }
            return true;
    }

    public static void main(String[] args) {
    // TODO: Add your code here
    Effiacy eff=new Effiacy();
    try
    {
     in = new BufferedReader(new InputStreamReader(System.in));
    String sr =in.readLine();
    System.out.println(eff.isMail(sr));
      System.out.println(sr);
      in.close();
    }
    catch(IOException e)
    {
    e.printStackTrace();
    }
    }
    }
      

  3.   

    import java.io.*;
    public class Effiacy {
    String[] sMail={"@","."};
    public boolean isMail(String sPara)
    {
    for(int i=0;i<sMail.length;i++)
    {
    if(sPara.indexOf(sMail[i])==-1) return false;        
            }
            return true;
    }

    public static void main(String[] args) {
    // TODO: Add your code here
    Effiacy eff=new Effiacy();
    String str=null;
    try
    {
                BufferedReader cin = new BufferedReader( new InputStreamReader( System.in ) );
                 str = cin.readLine(); //str=System.in.toString();
    //    str=System.in.read();
    }
    catch(Exception e)
    {
    e.printStackTrace();
    }
    if(eff.isMail(str))
    System.out.println("true");
    else
    System.out.println("false");
    System.out.println(str);
    }
    }
    这样就好了
    你读的是一个字节,不是一行输入
      

  4.   

    System.in.read()只返回输入的第一个字符的ascii码, 如果[email protected] 则返回0x31十进制49 转为String "49"改为
    try{
      BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
      str=input.readLine();
    }