java练习题(持续更新...)

import java.util.Scanner;
//用户录入一个字符串, 要求对字符串进行处理:
//例如: 用户录入: xiang ge Hao Shuai
//处理之后得到: Xiang get hao shuai 
public class 字符串整理练习 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入要处理的字符串字符串");
		String s = sc.nextLine();
		//截取第一个字符
		String head = s.substring(0, 1);
		//截取第一个字符后边的全部字符
		String ends = s.substring(1);
		//把第一个字符转为大写字母
		String head1 = head.toUpperCase();
		//把后边的字符转为小写字母
		String ends1 = ends.toLowerCase();
		//拼接字符串后输出
		System.out.println(head1.concat(ends1));
		
	}

}
public class 字符出现次数统计 {
	//定义一个字符串 
	//"i am a teacher, you are a student, we are friend, wo are famliy"; 
	//统计a字符出现的次数;
	public static void main(String[] args) {
		String s = "i am a teacher, you are a student, we are friend, wo are famliy";
		//把字符串转为Char数组
		char[] array = s.toCharArray();
		//定义变量储存次数
		int num = 0;
		//遍历数组,当array[i] == 'a'; 
		for (int i = 0; i < array.length; i++) {
			if(array[i] == 'a') {
				num ++;
			}
		}
		System.out.println("a的出现次数为:" + num);
	}

}
//	用户登录系统:
//	 用户已注册的用户名为: Tom123 密码为:lgx_123
//	 提示用户输入用户: 用户名字母和数字组成,且必须以大写字母开头,长度在5~10之间 
//		[A-Z][0-9a-zA-Z] {4,9}
//	 如果用户输入的用户名不合法,
//	 就提示用户输入的内容不合法,然后重新录入用户名
//	 如果输入的用户名合法:就提示输入用户密码:
//	 提示用户输入密码:  密码由小写字母,数字,下划线数字组成,长度在5~12之间    
//			[a-z0-9_]{5,12}
//	 如果用户输入的密码不合法,
//	 就提示用户输入的内容不合法,然后重新录入密码
//	 如果密码合法,就校验是否能登录成功.
package com.youjiuye.work;
import java.util.Scanner;
public class 登录 {
	//储存账号和密码
	public static String name = "Tom123";
	public static String key = "lgx_123";
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入用户名");
		String inName = sc.nextLine();
		//用正则表达式定义用户名的规则
		String  regex1 = "[A-Z][0-9a-zA-Z]{4,9}";
		//判断用户输入是否符合规则
		while(!inName.matches(regex1)) {
			System.out.println("不符合规则,请重新输入用户名");
			inName = sc.nextLine();
		}
		System.out.println("请输入密码");
		String inKey = sc.nextLine();
		//用正则表达式定义面规则
		String regex2 = "[a-z0-9_]{5,12}";
		//判断用户输入输入是否符合规则
		while(!inKey.matches(regex2)) {
			System.out.println("不符合规则,请重新输入用户名");
			inKey = sc.nextLine();
		}
		//判断不能用"=="
		if(name.equals(inName) && key.equals(inKey)) {
			System.out.println("登录成功");
		}else {
			System.out.println("用户名或密码错误");
		}
	}
}
package com.youjiuye.work;

//定义一个方法,接收一个int[]类型的数组,返回该数组的字符串表示形式
//举例:接收数组为int[] arr = {1, 2, 3},返回的字符串为<1, 2, 3>
//要求:使用StringBuilder进行拼接,提高运行效率
public class StringBuilder的练习 {

	public static void main(String[] args) {
		int[] arr = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
		String arrayString = toArrayString(arr);
		System.out.println(arrayString);
	}
	public static String toArrayString(int[] arr) {
		//定义一个StringBuild对象,内容为空
		StringBuilder sb = new StringBuilder();
		//拼接一个'<'
		sb.append('<');
		for (int i = 0; i < arr.length; i++) {
			int j = arr[i];
			//拼接数组中的数据
			sb.append(j);
			sb.append('.');
		}
		//删除最后一个多余的'.'
		sb.deleteCharAt(sb.length() - 1);
		//拼接'>'
		sb.append('>');
		String arrayString = sb.toString();
		return arrayString;
	}
}
//使用泛型知识创建装载Dog对象的集合,并遍历
package com.youjiuye.haha;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class List的遍历及泛型的使用 {

	public static void main(String[] args) {
		//多态
		List<Dog> l = new ArrayList<Dog>();
		l.add(new Dog("旺财","公狗"));
		l.add(new Dog("小白","公狗"));
		l.add(new Dog("小黑","母狗"));
		//创建迭代器对象,准备遍历集合
		Iterator<Dog> it = l.iterator();
		while(it.hasNext()) {
			Dog next = it.next(); //这里取出的是Dog类的对象
			System.out.println("小狗名字是"+next.getName()+",是一只小"+next.getSex());
		}
		//这里使用循环的方式遍历数组.
		for (int i = 0; i < l.size(); i++) {
			//List对象使用get方法获取对象.
			Dog d = l.get(i);
			System.out.println("小狗名字是"+ d.getName()+",是一只小"+d.getSex());
		}
	}
}
//定义一个静态泛型方法打印提供的数组.
package com.youjiuye.haha;

public class 静态泛型方法 {

	public static void main(String[] args) {
		//打印字符串类型的数组
		String[] arr = {"呵呵","aaa","哈哈"};
		printArray(arr);
		//打印引用类型对象Dog类型的数组
		Dog[] arr1 = new Dog[2];
		arr1[0] = new Dog("豆豆","黄色");
		arr1[1] = new Dog("小白","白色");
		printArray(arr1);
	}
	//定义一个静态泛型方法打印提供的数组.
/*	这个方法只能遍历基本类型数组
 	public static<T> void printArray(T[] t) {
		for (int i = 0; i < t.length; i++) {
			System.out.println(t[i]);
		}
	}*/
	//下面这个方法中的toString()方法需要在引用类型的类中重写.
	public static<T> void printArray(T[] t) {
		for (int i = 0; i < t.length; i++) {
			String s = t[i].toString();
			System.out.println(s);
		}
	}
}
package com.youjiuye.day11_11;

import java.util.Random;

//使用Random对象的产生随机数的功能, 获得出20~50随机数.

public class Random_生成随机数 {
	
	public static void main(String[] args) {
		//创建随机数生成器
		Random r = new Random();
		//使用nextnt()方法生成0-30的数,加20即为20-50之间的数
		int a = (r.nextInt(31)) + 20;
		System.out.println(a);
	}
}
package com.youjiuye.day11_11;
//定义一个Person类 有姓名, 年龄的属性, 
//要求定义一个数组来存储Person对象.数组默认初始容量是4;
//	    Person[] ps = new Person[4];
//向数组中存储四个Perosn对象.然后遍历数组.
public class Demo1 {

	public static void main(String[] args) {
		Person[] ps = new Person[4];
		ps[0] = new Person("赵新",24);
		ps[1] = new Person("刘亦菲",30);
		ps[2] = new Person("周冬雨",24);
		ps[3] = new Person("赵奕欢",30);
		System.out.println(ps[0]);
		for (int i = 0; i < ps.length; i++) {
			//已经在Person类中重写了toString方法,所以打印对象名,输出的就是对象的属性字符串.
			System.out.println(ps[i]);
		}
	}
}

//下边是Person类
package com.youjiuye.day11_11;
//定义一个Person类 有姓名, 年龄的属性, 
//要求定义一个数组来存储Person对象.数组默认初始容量是4;
//    Person[] ps = new Person[4];
//向数组中存储四个Perosn对象.然后遍历数组.
public class Person {
	private String name;
	private int age ;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public Person() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Person(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + "]";
	}
}
package com.youjiuye.day11_11;

import java.util.ArrayList;
import java.util.Iterator;

//1.定义一个ArrayList集合, 用来存储Student对象
//学生有:姓名, 年龄, 性别,创建5个学生对象,存储到集合中.
//2.定义方法, 传入一个上面的1中集合对象, 传入一个姓名, 如果集合中有该姓名的学生, 输出学生的所有信息
//	public static void printStudentByName(ArrayList list, String name)
//3.定义方法, 传入一个上面的1中集合对象, 传入一个姓名, 如果集合中有该姓名的学生, 就把这个学生从集合中删除
//  public static void deleteStudentByName(ArrayList list, String name)
//4.定义方法, 传入一个上面的1中集合对象, 传入一个姓名, 如果集合中有该姓名的学生, 就把这个学生的年龄给指的年龄
//	public static void updateStudentByName(ArrayList list, String name, int age)
//5.定义方法, 传入一个上面的1中集合对象, 传入性别,打印出所有集合中该是指定姓名的学生信心 
//	public static void printStudentBySex(ArrayList list, String sex)

public class Demo2 {

	public static void main(String[] args) {
		//1
		ArrayList al1 = new ArrayList();
		al1.add(new Student("赵新", 24, "男"));
		al1.add(new Student("刘亦菲", 30, "女"));
		al1.add(new Student("周冬雨", 24, "女"));
		al1.add(new Student("成文涛", 23, "男"));
		al1.add(new Student("站爱抚", 24, "男"));
		//2
		printStudent("周冬雨",al1);
		//3
		dlStudent("成文涛",al1);
		printArrayList(al1);
		//4
		getAge("赵新",al1);
		//5
		sexQuery("女",al1);
	}
	//遍历集合
	public static <E> void printArrayList(ArrayList<E> al) {
		Iterator<E> it = al.iterator();
		while(it.hasNext()) {
			E next = it.next();
			System.out.println(next);
			
		}
		
	}
	//2
	public static  void printStudent(String s,ArrayList<Student> al) {
		//循环遍历ArrayList
		for (int i = 0; i < al.size(); i++) {
			//取出集合中的元素,---就是Student对象
			Student t = al.get(i);
			if(s.equals(t.getName())) {
				System.out.println(t);
			}
		}
		//下面这种方法也可以
		/*Student[] arr = al.toArray(new Student[0]);
		for (int i = 0; i < arr.length; i++) {
			Student stu = arr[i];
			if(s == arr[i].getName()) {
				System.out.println(arr[i]);
			}
		}*/
	}
	//3. 定义方法, 传入一个上面的1中集合对象, 传入一个姓名, 如果集合中有该姓名的学生, 就把这个学生从集合中删除
	public static  void dlStudent(String s,ArrayList<Student> al) {
		Iterator<Student> it = al.iterator(); 
		while(it.hasNext()) {
			Student next = it.next();
			if(s.equals(next.getName())) {
				System.out.println("已删除" + s);
				al.remove(next);
			}
		}
	}
	//4. 定义方法, 传入一个上面的1中集合对象, 传入一个姓名, 如果集合中有该姓名的学生, 就把这个学生的年龄给指的年龄
	public static void getAge(String s, ArrayList al) {
		for (int i = 0; i < al.size(); i++) {
			Student st = (Student)al.get(i);
			if(s.equals(st.getName())) {
				System.out.println(s + "的年龄为:" + st.getAge());
			}
		}
	}
	//5. 定义方法, 传入一个上面的1中集合对象, 传入性别,打印出所有集合中该是指定姓名的学生信心 
	public static <T> void sexQuery(String s,ArrayList<Student> al) {
		for (int i = 0; i < al.size(); i++) {
			Student st = al.get(i);
			if(s.equals(st.getSex())) {
				System.out.println(st);
				
			}
			
		}
	}
}

//字节流拷贝方式
package com.youjiuye.prictice;

import java.io.FileInputStream;

public class 拷贝最终方案 {

	public static void main(String[] args) throws IOException {
		FileInputStream fis = new FileInputStream("af.txt");
		FileOutputStream fos = new FileOutputStream("af1.txt"); 
		
		byte[] arr = new byte[1024*8];
		int len;
		while((len = fis.read(arr)) != -1) {
			fos.write(arr, 0, len);;
		}
		
		fos.close();
		fis.close();
		
	}

}

/*文本1:
	123
	asd
	zxc
copy:zxc
	 asd
	 123*/
package com.youjiuye.prictice;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;

public class 反向拷贝 {

	public static void main(String[] args) throws IOException {
		FileReader fr = new FileReader("C:\\Users\\Administrator\\Desktop\\cs1\\文本1.txt");
		FileWriter fw = new FileWriter("C:\\Users\\Administrator\\Desktop\\cs2\\copy.txt");
		BufferedReader buffr = new BufferedReader(fr);
		BufferedWriter buffw = new BufferedWriter(fw);
		
		ArrayList<String> list = new ArrayList<>();
		String line ;
		while((line = buffr.readLine()) != null) {
			//System.out.println(line);
			list.add(line);
		}
		buffr.close();
		
		Collections.reverse(list);
		for (String inString : list) {
			buffw.write(inString);
			buffw.newLine();
		}
		buffw.close();
		
	}

}

<!DOCTYPE html>
<html>
	<!--js 生成一个具有5元素容量的数组,数组元素取值范围为[1, 5],而且不能重复!-->
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
	</body>
	<script type="text/javascript">
		var arr = new Array(5);
		//随机数:var a = parseInt(Math.random()*(5 - 1 + 1)) + 1;
		for (var i = 0;i < arr.length;i ++ ) {
			arr[i] = Number( parseInt(Math.random()*(5 - 1 + 1)) + 1);
			while(arr.indexOf(arr[i]) != i){
				arr[i] =Number( parseInt(Math.random()*(5 - 1 + 1)) + 1);
			}
		}
		console.log(arr);
	</script>
</html>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值