为什么我输入的name的第二次和第三次是中文,出现很多拼音+中文???

来源:5-2 学生选课---使用 Map 添加学生

水滴石狮

2016-06-15 00:24

package com.imooc.collection;


import java.util.HashMap;

import java.util.Map;

import java.util.Scanner;

import java.util.Set;


public class MapTest {

/*

* 用来承装学生类型对象

*/

public Map<String,Student>students;

//初始化students(String为ID类型,Student为学生对象类型)

public MapTest(){

this.students = new HashMap<String,Student>();

}

/*

* 测试添加的方法:输入学生ID,判断是否被占用

* 若未被占用,则输入姓名,创建新学生对象,并且

* 添加到students中

*/

public void testPut(){

//创建一个Scanner对象,用来获取输入的学生ID和姓名

Scanner console = new Scanner(System.in);

//循环输入学生的ID

int i=0;

while(i<3){

//接收学生输入的ID

System.out.println("请输入学生的ID:");

String ID=console.next();

//p判断该ID是否被占用

Student st = students.get(ID);//Map.get方法turn返回values值,false返回null

if(st == null){

//没有对应的values时,接收学生姓名

System.out.println("请输入学生姓名:");

String name = console.next();

//创建学生对象,把输入的ID和name添加到学生集中

Student newStudents=new Student(ID,name);

students.put(ID, newStudents);

System.out.println("成功添加学生:"+students.get(ID).name);

//System.out.println("成功添加学生:"+students.get(ID));

i++;

}else{

System.out.println("该学生的ID已存在!");

continue;

}

}

}

/*

* 测试keySet方法

*/

public void testKeySet(){

//通过KeySet方法,返回Map中的所有“键”的Set集合

Set<String> keySet=students.keySet();

System.out.println("总共有:"+keySet.size()+"个学生");

//使用Srting类型的变量名stuId遍历keySet中的值。再用Map.get方法返回对应的values值;

for(String stuID : keySet){

Student st = students.get(stuID);

if(st != null){

System.out.println(st.id+st.name);

}

}

}

public static void main(String [] args){

MapTest mt = new MapTest();

mt.testPut();

mt.testKeySet();

}http://img.mukewang.com/57602f8b00015e9905250504.jpg

}


写回答 关注

2回答

  • 慕仰3473226
    2016-08-09 17:12:57

    你输入姓名时,把鼠标移到最下面,这种情况是你输入时,你的光标在上面,你输入拼音时 ,不会显示出来。但确实添加到了name

  • 水滴石狮
    2016-06-15 00:38:43

    没人有这种情况出现?

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409764 学习 · 4538 问题

查看课程

相似问题