回 帖 发 新 帖 刷新版面

主题:初学者问的问题

import java.io.*;
import java.util.*;

class vote{
    
    private int count;
    
    int getcount(){
        return count;
    }
    
    void setcount(int count){
        this.count = count;
    }
    
    void clear(){
        this.count = 0;
    }
    
    void increment(){
        this.count++;
    }
    
    void decrement(){
        this.count--;
    }
}

class candidate{
    
    private String name;
    private int number;
    vote Vote = new vote();
    
    candidate(){
        number++;
    }
    
    candidate(String name,vote Vote){
        this.Vote = Vote;
        this.name = name;
        number++;
    }
    
    String getname(){
        return name;
    }
    
    vote getvote(){
        return Vote;
    }
    
    int getnumber(){
        return number;
    }
}

/*class menber{
    
    private String Name="";
    
    menber(String name){
        Name = name;    
    }
    vote testVote = new vote();
    candidate test = new candidate(Name,testVote);
    //testVote.clear();
    
    
}*/

public class work68{
    public static void main(String[] args){
        
        int v=10;
        /*menber prople1 = new menber("name1");
        menber prople2 = new menber("name2");*/
        vote testVote1 = new vote();
        vote testVote2 = new vote();
        testVote1.clear();
        testVote2.clear();
        candidate test1 = new candidate("people1",testVote1);
        candidate test2 = new candidate("people2",testVote2);
        
        try{
            
        
            
            for(;v!=0;){
            //v = InputStream.read();
            v = System.in.read();
            v=v-'0';
            //System.out.println(v);
        
                switch(v){
            
                    case 1 : test1.Vote.increment();break;
            
                    case -1 : test1.Vote.decrement();break;
            
                    case 2 : test2.Vote.increment();break;
            
                    case -2 : test2.Vote.decrement();break;
                
                    default : break;
                }
            }
        }
        catch(Exception e){
        }
        System.out.println(test1.Vote.getcount());
        System.out.println(test2.Vote.getcount());
    }
    
}


read〔〕输入无论正负显示都是正```请问怎么解决
还有把成员创建简化成一个类 但不知道怎么弄 乱弄了一下报错了
还请各位达人帮帮小弟``

回复列表 (共4个回复)

沙发

并不是无论正负都显示正,本人觉得read()方法是从输入流读取下一个数据字节,如果你输入1或2,都会正确,但你输入12或22,也会正确,只要是以1或2开头的其他数,所以如果你输入的是负数,如-1,那么它得到的是-的ASC码45,所以就不会对了
建议用使用InputStreamReader流

板凳

InputStreamReader
我试过 但还是不会用阿```

3 楼

/**
     * 以字符为单位读取文件,常用于读文本,数字等类型的文件
     * @param fileName 文件名
     */
public static void readFileByChars(String fileName){
     File file = new File(fileName);
     Reader reader = null;
     try {
      System.out.println("以字符为单位读取文件内容,一次读一个字节:");
      // 一次读一个字符
      reader = new InputStreamReader(new FileInputStream(file));
      int tempchar;
      while ((tempchar = reader.read()) != -1){
       //对于windows下,\r\n这两个字符在一起时,表示一个换行。
       //但如果这两个字符分开显示时,会换两次行。
       //因此,屏蔽掉\r,或者屏蔽\n。否则,将会多出很多空行。
       if (((char)tempchar) != '\r'){
        System.out.print((char)tempchar);
       }
      }
      reader.close();
     } catch (Exception e) {
      e.printStackTrace();
     }
     try {
      System.out.println("以字符为单位读取文件内容,一次读多个字节:");
      //一次读多个字符
      char[] tempchars = new char[30];
      int charread = 0;
      reader = new InputStreamReader(new FileInputStream(fileName));
      //读入多个字符到字符数组中,charread为一次读取字符数
      while ((charread = reader.read(tempchars))!=-1){
       //同样屏蔽掉\r不显示
       if ((charread == tempchars.length)&&(tempchars[tempchars.length-1] != '\r')){
        System.out.print(tempchars);
       }else{
        for (int i=0; i<charread; i++){
         if(tempchars[i] == '\r'){
          continue;
         }else{
          System.out.print(tempchars[i]);
         }
        }
       }
      }
   
     } catch (Exception e1) {
      e1.printStackTrace();
     }finally {
      if (reader != null){
       try {
        reader.close();
       } catch (IOException e1) {
       }
      }
     }
}
自己整理一下吧

4 楼


import java.io.*;
import java.util.*;

class vote{
    
    private int count;
    
    int getcount(){
        return count;
    }
    
    void setcount(int count){
        this.count = count;
    }
    
    void clear(){
        this.count = 0;
    }
    
    void increment(){
        this.count++;
    }
    
    void decrement(){
        this.count--;
    }
}

class candidate{
    
    private String name;
    private int number;
    vote Vote = new vote();
    
    candidate(){
        number++;
    }
    
    candidate(String name,vote Vote){
        this.Vote = Vote;
        this.name = name;
        number++;
    }
    
    String getname(){
        return name;
    }
    
    vote getvote(){
        return Vote;
    }
    
    int getnumber(){
        return number;
    }
}

/*class menber{
    
    private String Name="";
    
    menber(String name){
        Name = name;    
    }
    vote testVote = new vote();
    candidate test = new candidate(Name,testVote);
    //testVote.clear();
    
    
}*/

public class Work68{
    public static void main(String[] args){
        
        int v=3;
        /*menber prople1 = new menber("name1");
        menber prople2 = new menber("name2");*/
        vote testVote1 = new vote();
        vote testVote2 = new vote();
        testVote1.clear();
        testVote2.clear();
        candidate test1 = new candidate("people1",testVote1);
        candidate test2 = new candidate("people2",testVote2);
        
        try{
            
        
            
            for(;v!=0;){
            try{InputStreamReader reader=new InputStreamReader(System.in);
              BufferedReader input=new BufferedReader(reader);
                   v=Integer.parseInt(input.readLine());
                    }catch(IOException e){
                     System.out.println("IOException occur in the process of inputing int");
                 }
              
        
            System.out.println(v);
        
                switch(v){
            
                    case 1 : test1.Vote.increment();break;
            
                    case -1 : test1.Vote.decrement();break;
            
                    case 2 : test2.Vote.increment();break;
            
                    case -2 : test2.Vote.decrement();break;
                
                    default : break;
                }
            }
        }
        catch(Exception e){
        }
        System.out.println(test1.Vote.getcount());
        System.out.println(test2.Vote.getcount());
    }
    
}


我来回复

您尚未登录,请登录后再回复。点此登录或注册