Experimento 3 Uso del marco de colección y biblioteca de clases de Java Basic

Tabla de contenido

1. El propósito del experimento

2. Código experimental

1. De acuerdo con la tarjeta de identificación para determinar si el cumpleaños

2. Extrae los números de la cadena.

3. Información oculta de la tarjeta de identificación

4. Cadena para lograr la conversión de casos

5. Cifrado y descifrado de cadenas

6. Formatee el número de la tarjeta bancaria

7. Escriba un programa, ingrese una oración en inglés, cambie el primer carácter de cada palabra a mayúsculas y luego envíela.

8. Escriba un programa para generar un número de teléfono aleatorio. Los primeros cinco dígitos del número de teléfono son 15923, y los últimos seis dígitos se generan aleatoriamente.

9. Escriba un programa para generar aleatoriamente un código de verificación de 4 dígitos, que puede contener el tamaño y el número de caracteres en inglés.

10. Utilizando ideas de programación orientadas a objetos, almacene la información del estudiante en la Tabla 1 en la colección List (ArrayList o LinkedList). Escribe un programa para lograr las siguientes funciones:

11. Programación para simular la función de registro de usuarios.

12. Utilice Map para almacenar nombres de usuario y contraseñas. Cambie la contraseña de uno de los usuarios. Por favor, muestre todas las cuentas y sus contraseñas correspondientes.

Una palabra por texto

 


El documento oficial del manual de ayuda de Java, haga clic aquí para descargar

1. El propósito del experimento

1. Dominar el uso de String y StringBuffer;

2. Dominar el uso de envases;

3. Dominar el uso de listas, conjuntos y mapas de colecciones;

4. Dominar el uso de Iterator;

5. Comprender el papel de los genéricos y el uso básico.

2. Código experimental

1. De acuerdo con la tarjeta de identificación para determinar si el cumpleaños

Escriba un programa: ingrese un número de identificación de 18 dígitos y luego juzgue si el cumpleaños ha pasado de acuerdo con la información de la fecha de nacimiento. Y envíe uno de los siguientes tres mensajes.

El cumpleaños de este año ha pasado.

El cumpleaños de este año no ha pasado.

Hoy es cumpleaños.

package 作业练习.test3;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Birthday {
    public static void main(String[] args) {
        System.out.println("输入您的身份证号:");
        Scanner reader = new Scanner(System.in);
        String str = reader.nextLine();
        String[] sNum ={str};
        int[] birthTime = new int[1];
        birthTime[0] = Integer.parseInt(sNum[0].substring(10, 14));
        SimpleDateFormat sdf = new SimpleDateFormat("MMdd");//设置格式
        Date date = new Date();//表示当前时间,无法单独输出
        int now = Integer.parseInt(sdf.format(date));//方法
        System.out.println(now);
        // 输出
        for (int i = 0; i < 1; i++) {
            System.out.println(sNum[i]);
            if (now > birthTime[i]) {
                System.out.println("This year's birthday has passed.");
            } else if (now < birthTime[i]) {
                System.out.println("This year's birthday has not passed.");
            } else if (now == birthTime[i]) {
                System.out.println("Today is birthday.");
            }
        }
    }
}

2. Extrae los números de la cadena.

Escriba un programa para eliminar todos los caracteres no digitales en una cadena, por ejemplo: elimine todos los caracteres no digitales en el formulario " A1BC2you3 ", obtenga la cadena " 123 " y convierta " 123 " en tipo int y envíela, si se ingresa Si no hay números en la cadena, se emite "ningún número".

package 作业练习.test3;
import java.util.Scanner;
public class StringToInt {
    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);
        String str = reader.nextLine();
        String newStr = "\\D+";//\d 是一个正字表达式,标识所有数字及0-9
        str = str.replaceAll(newStr, "");
        if (str.length() > 0) {
            int n = Integer.parseInt(str);//parseInt() 方法用于将字符串参数作为有符号的十进制整数进行解析。
            System.out.println(n);
        } else {
            System.out.println("无数字");
        }
    }
}

3. Información oculta de la tarjeta de identificación

Escriba un programa para mostrar la información del año en el número de certificado del número de identificación de 18 dígitos como * , y el resto de los caracteres permanecen sin cambios (por ejemplo, el número de identificación 10013319961213602X se convierte a 100133 **** 1213602X para su visualización).

Nota: utilice los métodos de StringBuffer y String respectivamente .

package 作业练习.test3;

import java.util.Scanner;

public class Shenfenzheng {
    public static void main(String[] args) {
        System.out.println("输入您的身份证号:");
        Scanner reader = new Scanner(System.in);
        String str = reader.nextLine();
        StringBuilder sb = new StringBuilder(str);
        sb.replace(6, 10, "****");
        System.out.println(sb.toString());

    }
}

4. Cadena para lograr la conversión de casos

Escriba el programa para lograrlo, las letras mayúsculas y minúsculas se cambian y los demás caracteres permanecen sin cambios (por ejemplo: ingrese la cadena "¡ Me encanta Java !" Y la salida es "¡ AMO jAVA !").

 

package 作业练习.test3;
import java.util.Scanner;
public class Upper {
    public static void main(String [] args)
    {
        System.out.println("输入字符:");
        String str1 = new Scanner(System.in).nextLine();  //输入字符串
        String str2 = new String();
        char ch;
        for(int i=0;i<str1.length();i++)
        {
            if(Character.isUpperCase(str1.charAt(i)))
            {
                ch = Character.toLowerCase(str1.charAt(i));
                str2+=ch;
            }else if(Character.isLowerCase(str1.charAt(i)))
            {
                ch =Character.toUpperCase(str1.charAt(i));
                str2+=ch;
            }else
            {
                ch =str1.charAt(i);
                str2+=ch;
            }
        }
        System.out.println(str2);
    }
}

5. Cifrado y descifrado de cadenas

Diseñe una clase para encapsular dos métodos estáticos, a saber, el método de cifrado de cadenas y el método de descifrado de cadenas. Reclamación:

Después de cifrar una cadena especificada, el texto cifrado se puede descifrar utilizando el número de método de descifrado y se puede mostrar la información de texto sin formato. La forma de cifrado es agregar cada carácter de la cadena a su posición en la cadena y un valor de compensación de 5 . Tome la cadena " china " como ejemplo, la posición del primer carácter " c " en la cadena es 0 , luego su correspondiente texto cifrado es " 'c' + 0 + 5" , que es h . Según esta regla, la cadena " china " se cifra como " hnpvj " .

package 作业练习.test3;
import java.util.Scanner;
public class Jiami {
    public static void main(String [] args)
    {
        Scanner scan =new Scanner(System.in);
        char secret ='8';//加密文字符
        System.out.println("请输入你要加密的内容");
        String pass =scan.next();
        System.out.println("原字符串的内容" +pass);
        String secrerult=secret(pass,secret);
        System.out.println("加密后的内容"+secrerult);
        String uncrypresult = secret(secrerult,secret);
        System.out.println("解密后的内容"+uncrypresult);
    }
    public static String secret(String value,char secret)
    {
        byte[] bt =value.getBytes();//将其转化为字符数组
        for(int i=0;i<bt.length;i++)
        {
            bt[i]=(byte)(bt[i]^(int)secret);             //两次位或运算返回
        }
        String newresult =new String(bt,0,bt.length);
        return newresult;
    }

}

6. Formatee el número de la tarjeta bancaria

Escriba un programa para ingresar el número de la tarjeta bancaria y mostrarlo cada 4 caracteres más un espacio. Por ejemplo, si el número de tarjeta bancaria es 62220630108589564785130 , el resultado es 6222 0630 1085 8956 4785 130 .

package 作业练习.test3;
import java.util.*;
public class str6 {
    public static void main(String[] args) {
        System.out.println("请输入你的银行卡号:");
        String bank = new Scanner(System.in).next();
        char[] id = bank.toCharArray();
        String changeid = new String();
        for (int i = 0; i < id.length; i++) {
            if (i % 4 == 0 && i > 0) {
                changeid += ' ';
            }
            changeid += id[i];
        }
        System.out.println(changeid);
    }
}

7. Escriba un programa, ingrese una oración en inglés, cambie el primer carácter de cada palabra a mayúsculas y luego envíela.

package 作业练习.test3;
import java.util.Scanner;
public class Exer07 {
    public static void main(String[]args)
    {
        System.out.println("输入一个英文句子");
        String in =new Scanner(System.in).nextLine();
        String [] s=in.split(" ");
        String str2 =new String();
        for(int i=0;i<s.length;i++)
        {
            s[i]=s[i].substring(0,1).toUpperCase()+s[i].substring(1);
            if(i==s.length-1)
            {
                str2=str2+s[i];
            }else
            {
                str2=str2+s[i]+' ';
            }
        }
        System.out.println(str2);
    }
}

8. Escriba un programa para generar un número de teléfono aleatorio. Los primeros cinco dígitos del número de teléfono son 15923, y los últimos seis dígitos se generan aleatoriamente.

package 作业练习.test3;
import java.util.Random;
public class Exer08 {
    public static void main(String[] args)
    {
        String firtst_five = "15923";
        String lastsix =new String();
        String Phone =new String();
        Random rnd =new Random();
        for(int i=0;i<6;i++)
        {
            int nmber =rnd.nextInt(10);
            lastsix += nmber;
        }
        Phone =firtst_five+lastsix;
        System.out.println(Phone);
    }
}

9. Escriba un programa para generar aleatoriamente un código de verificación de 4 dígitos, que puede contener el tamaño y el número de caracteres en inglés.

package 作业练习.test3;
import java.util.Random;
class Random_1 {
    public String  string() {
        String ZiMu = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGJKLZXCVBNM1234567890";
        String result = "";
        Random random = new Random();
        for (int i = 0; i < 4; i++) {
            int index = random.nextInt(ZiMu.length());
            char c = ZiMu.charAt(index);
            result += c;
        }
        return result;
    }
    public static void main(String[] args) {
        Random_1 test2 = new Random_1();
        System.out.println(test2.string());
    }
}

10. Utilizando ideas de programación orientadas a objetos, almacene la información del estudiante en la Tabla 1 en la colección List (ArrayList o LinkedList). Escribe un programa para lograr las siguientes funciones:

Tabla 1 Información del estudiante

Identificación del Estudiante

Nombre

fecha de nacimiento

201644001

Zhang San

3 de febrero de 1997

201644002

Li Si

11 de noviembre de 1998

201644003

Wang Wu

2 de marzo de 1996

201644004

Zhao Liu

12 de diciembre de 1996

201644005

Zhou Zheng

10 de octubre de 1997

(1) Cree una clase de estudiante estudiante. La clase incluye tres variables de miembro, que son ID del estudiante, nombre y fecha de nacimiento. Agregue un método de construcción sin parámetros, agregue un método de construcción con los tres parámetros anteriores y agregue Getters para cada variable de miembro. Y método Setter, reescriba el método toString () (formato de cadena de retorno: nombre de identificación del estudiante, fecha de nacimiento)

(2) Agregue los estudiantes de la Tabla 1 a la Lista por turno;

(3) Genere toda la información del estudiante (usando Iterator);

(4) Un estudiante (número de estudiante: 201644006, nombre: Li Ming, fecha de nacimiento: 12 de enero de 1998) se inscribió a mitad de camino y lo agregó a la colección List;

(5) Un estudiante "Wang Wu" abandonó la escuela y lo eliminó de la colección List;

(6) Recorra y muestre toda la información del estudiante nuevamente (usando la declaración foreach).

(7) Envíe la identificación del estudiante, el nombre y la fecha de nacimiento del estudiante más joven (considere el caso donde hay más de un estudiante con la edad más joven

 

package 作业练习.test3;
import java.util.*;
public class Students {
    public String id;//学号
    public String name;//姓名
    public String birth;//出生日期
    Students(){} //不带参数的构造方法
    Students(String id, String name, String birth) //带三个参数的构造方法
    {
        this.id = id;
        this.name = name;
        this.birth = birth;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getBirth() {
        return birth;
    }
    public void setBirth(String birth) {
        this.birth = birth;
    }
    public static void addStudent(List<Students> list)  //增加学生信息
    {
        Scanner sc = new Scanner(System.in);
        boolean flag = false;
        String newStudentid;
        while (true) {
            System.out.println("请输入学号:");
            newStudentid = sc.nextLine();
            for (int i = 0; i < list.size(); i++) {
                Students s = list.get(i);
                if (s.getId().equals(newStudentid)) {
                    flag = true;
                    break;
                }
            }
            if (flag == true) {
                System.out.println("输入的学生已存在,请重新输入");
            } else {
                break;
            }
        }
        System.out.println("请输入学生的姓名");
        String newStudentname = sc.nextLine();
        System.out.println("请输入学生的生日");
        String newStudentbirth = sc.nextLine();
        Students newStudent = new Students();
        newStudent.setId(newStudentid);
        newStudent.setBirth(newStudentbirth);
        newStudent.setName(newStudentname);
        list.add(newStudent);
    }
    public static void print1(List<Students> list) //迭代器Iterator输入所以学生信息
    {
        Iterator<Students> it = list.iterator();
        while (it.hasNext()) {
            Students st = it.next();
            System.out.println("学号:  " + st.id + "姓名:  " + st.name + "生日:  " + st.birth);
        }
    }
    public static void print2(List<Students> list)//用foreach方法输出学生信息
    {
        for (Students obj : list) {
            Students st = obj;
            System.out.println("学号:  " + st.id + "姓名:  " + st.name + "生日:  " + st.birth);
        }
    }
    public static void remove(List<Students> list) {
        System.out.println("请输入你要移除的学生的姓名");
        String movename = new Scanner(System.in).nextLine();
        int index = 0;
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).equals(movename)) {
                index = i;
            }
        }
        list.remove(index);
    }
    public static void main(String[] args) {
        List<Students> list = new ArrayList<Students>();
        while (true) {
            System.out.println("-----------欢迎进入学生信息管理系统-----------");
            System.out.println("请选择相关选项对学生信息进行管理...\n");
            System.out.println("1.查看所有学生信息");
            System.out.println("2.添加学生信息");
            System.out.println("3.删除学生信息");
            System.out.println("4.退出系统\n");
            Scanner sc = new Scanner(System.in);
            // 接收选项数据
            System.out.println("请输入你的选项:");
            String option = sc.nextLine();
            switch (option) {
                case "1":
                    print2(list);
                    break;
                case "2":
                    addStudent(list);
                    break;
                case "3":
                    remove(list);
                    break;
                case "4":
                    System.out.println("退出系统成功!");
                    System.exit(0);
                    break;
                default:
                    System.out.println("\n输入错误,请重新选择!\n");
                    break;
            }
        }
    }
}

11. Programación para simular la función de registro de usuarios.

Requisitos: Utilice la colección Set para almacenar información del usuario (incluido el nombre de usuario, el apodo y la contraseña) para realizar la función de registro de usuario. Si el nombre de usuario ya existe, no se puede registrar. Si el registro del usuario tiene éxito o falla, envíe el mensaje de solicitud correspondiente. Nota: Los nombres de usuario no distinguen entre mayúsculas y minúsculas.

Suponga que ya existe la siguiente información de usuario:

nombre de usuario

contraseña

Tim

112233

Barton

123456

María

654321

package 作业练习.test3;

import java.util.HashSet;
import java.util.Iterator;

class Exer09 {
    private String userName;
    private String passWord;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

    @Override
    public String toString() {
        return "userName: " + getUserName() + " passWord: " + getPassWord();
    }
}

    class Set {

        public static void main(String[] args) {
            // 添加初始信息
            Exer09 user1 = new Exer09();
            user1.setUserName("Tim");
            user1.setPassWord("112233");
            Exer09 user2 = new Exer09();
            user2.setUserName("Barton");
            user2.setPassWord("123456");
            Exer09 user3 = new Exer09();
            user3.setUserName("Mary");
            user3.setPassWord("654321");

            // 创建hash对象
            HashSet<Exer09> user = new HashSet<Exer09>();
            user.add(user1);
            user.add(user2);
            user.add(user3);

            // 输出
            Iterator<Exer09> hashIter = user.iterator();
            while (hashIter.hasNext()) System.out.println(hashIter.next());

            // 新用户
            Exer09 newUser = new Exer09();
            newUser.setUserName("tim");
            newUser.setPassWord("112273");
            System.out.println("新的信息:" + newUser.toString());
            // 测试
            if (!user.add(newUser)) System.out.println("已经注册");
            else System.out.println("注册成功");

            // 二次迭代
            hashIter = user.iterator();
            while (hashIter.hasNext()) System.out.println(hashIter.next());
        }
    }

 

12. Utilice Map para almacenar nombres de usuario y contraseñas. Cambie la contraseña de uno de los usuarios. Por favor, muestre todas las cuentas y sus contraseñas correspondientes.

Se requieren al menos 4 usuarios o más.

1. Utilice Map para crear una tabla de correspondencia "universidad profesional" basada en la información proporcionada en la Tabla 2, y realice la programación: cuando el usuario ingrese el nombre del profesional, envíe el nombre de la universidad a la que pertenece. Requisito: Permitir a los usuarios ingresar a una profesión con espacios iniciales o finales.

Tabla 3-2 Tabla comparativa de universidades y especializaciones

 

Nombre de la academia

profesión

Instituto de información

informática y tecnología

Ingeniería de Internet de las Cosas

Ingeniería de software

Automatización eléctrica

Facultad de Derecho, Política y Economía

economía y comercio internacional

trabajo Social

Economía ambiental y de recursos

Facultad de Ingeniería Petrolera

Tecnología de perforación petrolera

Tecnología de extracción de petróleo y gas

Tecnología de exploración geológica de petróleo y gas

Tecnología de transporte y almacenamiento de petróleo y gas

package 作业练习.test3;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class Map2 {
    public static void main(String[] args) {
        Map<String, String> hm = new HashMap<String, String>();
        hm.put("计算机科学与技术","智能技术与工程");
        hm.put("物联网工程","智能技术与工程");
        hm.put("软件工程","智能技术与工程");
        hm.put("智能科学与技术","智能技术与工程");
        hm.put("物流管理","工商管理");
        hm.put("酒店管理", "工商管理");
        hm.put("人力资源管理", "工商管理");
        hm.put("英语", "外国语");
        hm.put("西班牙语", "外国语");
        Scanner reader = new Scanner(System.in);
        String key = reader.nextLine();
        String key2 = reader.nextLine();
        String nkey = key.trim(); //去掉字符串两端的多余的空格
        String nkey2 = key2.trim();
        hm.put(nkey,nkey2);
        //map输出方法;
        System.out.println(hm);
        hm.clear();

    }
}

 

Una palabra por texto

 

Quieres cruzar la distancia para abrazarte en lugar de sostener tu teléfono y decir que te extraño.

 ¡El color de la suerte en este artículo es verde tierno! ¡Espero que todos puedan sobrevivir a cualquier distancia! ~!

Supongo que te gusta

Origin blog.csdn.net/weixin_47723732/article/details/112926230
Recomendado
Clasificación