Java基本类

例题

1、将A1B2C3D4E5F6G7H8拆分开来,并分别存入int[]和String[]数组。得到的结果为[1,2,3,4,5,6,7,8]和[A,B,C,D,E,F,G,H]
2、给定[“a”, ”b”, ”a”, ”b”, ”c”, ”a”, ”b”, ”c”, ”b”]字符串数组,然后使用Map的key来保存数组中字符串元素,value保存该字符串元素的出现次数,最后统计出各字符串元素的出现次数。

我的代码:

public static void main(String []args){
		String s="A1B2C3D4E5F6G7H8";
		Vector v1=new Vector(); //定义两个向量而不是数组
		Vector v2=new Vector();
		for(int i=0;i<s.length();i++){
			if((int)s.charAt(i)>=48 && (int)s.charAt(i) <=57){    
			//判断字符是不是数字
			//将数字字符转化成真正的数字
				String temp=String.valueOf(s.charAt(i));
				int a=Integer.parseInt(temp);
				v1.add(a);
			}
			else{
			//将字符转换成字符串
				String temp=String.valueOf(s.charAt(i));
				v2.add(temp);
			}
		}
		printV(v1);
		printV(v2);
	}
	
	public static void printV(Vector v){
		for(int i=0;i<v.size();i++){
			System.out.print(v.get(i)+" ");
		}
		System.out.println();
	}
public static void main(String []args){
		String []arr={"a", "b", "a", "b", "c", "a", "b", "c", "b"};
		//定义一个Map
		Map<String,Integer>map=new HashMap<String,Integer>();  
		for(int i=0;i<arr.length;i++){
			int flag=0; //用于判定map中是否有arr[i]
			for(String key:map.keySet()){
			//遍历Map中的键
				if(arr[i]==key){
				//如果arr[i]和Map中的键相等,证明在arr[i]前已经有等于arr[i]的字符出现了
					flag=1;
					int count=map.get(key);//获得当前arr[i]字符出现的个数
					map.put(arr[i], count+1);
//					map.get(key)=map.get(key)+1; 注意不可以这样写!!!
				}
			}
			if(flag==0){
				map.put(arr[i], 1);
			}
		}
		
		for(String key:map.keySet()){
			System.out.println(key+": "+map.get(key));
		}
	}

老师的代码:

public static void main(String []args){
	String str="A1B2C3D4E5F6G7H8";
	T2.splitStringMethod(str);
	T2.splitNumMethod(str);
}
public static void splitStringMethod(String aStr){
	String[] str=aStr.split("[1-9]");  //正则表达式和split的应用
	for(int i=0;i<str.length;i++){
		System.out.println(str[i]);
	}
}
public static void splitNumMethod(String aStr){
	String[] str=aStr.split("[A-Z]");
	for(int i=0;i<str.length;i++){
		System.out.println(str[i]);
	}
}


字符串、数字、字符三者之间的相互转换

1、字符串转数字

String intStr="16"
int it=Integer.parseInt(intStr);

String floatStr="3.14";
float ft=Float.parseFloat(floatStr);

2、数字转字符串

//1、
int number=5;
String str=String.valueOf(number);

//2、
Integer itr=5;
String str=itr.toString();

//3、字符串拼接
int num=5;
String str=num+"";

3、字符串转字符

//算不上转换
String str="abcd";
char ch=str.charAt(3);

4、字符转字符串

 char ch='a';
 String str=String.valueOf(ch);

5、数字转字符

//通过字符串进行间接转换
int num=5;
String temp=Integer.toString(num);
char ch=temp.charAt(0);

6、字符转数字

 //同样通过字符串进行间接转换
 char ch='5';
 String str=String.valueOf(ch);
 int num=Integer.parseInt(str);

Map的遍历

//1、
Map<Integer,Integer> map=new HashMap<Integer,Integer>();
for(Map.Entry<Integer,Integer> entry:map.entrySet()){
	System.out.println("Key="+entry.getKey()+",Value="+entry.getValue());
}

//2、
for(Integer key:map.KeySet()){
	System.out.println("Key="+key);
}

for(Integer value:map.ValueSet()){
	System.out.println("Value="+value);
}

3for(Integer key:map.KeySet()){
	Integer value=map.get(key);
	System.out.println("Key="+key+",Value="+entry.value);
}


基本数据类型的包装类

Java语言提供数据的两种使用方式:基本数据类型和类。为实现完全面向对象的特性,Java为每种基本数据类型都声明有对应的一个类。一个整数既可以作为整数变量的值,也可以当作Integer类中的一个对象的成员变量值

Integer inObj = 5;  // 直接把一个基本类型变量赋给Integer对象
		Object boolObj = true;  // 直接把一个boolean类型变量赋给一个Object类型的变量
		
		int it = inObj;  // 直接把一个Integer对象赋给int类型的变量
		System.out.println(it);
		
		if (boolObj instanceof Boolean)
		{
			// 先把Object对象强制类型转换为Boolean类型,再赋给boolean变量
			boolean b = (Boolean)boolObj;
			System.out.println(b);
		}

泛型

参考博客https://blog.csdn.net/m0_51955470/article/details/120818832

//老师的一个小Demo
public class Apple<T> {
	// 使用T类型形参定义实例变量
	private T info;

	public Apple() {
	}

	// 下面方法中使用T类型形参来定义构造器
	public Apple(T info) {
		this.info = info;
	}

	public void setInfo(T info) {
		this.info = info;
	}

	public T getInfo() {
		return this.info;
	}

	public static void main(String[] args)
	{
		// 由于传给T形参的是String,所以构造方法参数只能是String
		Apple<String> a1 = new Apple<String>("苹果");
		System.out.println(a1.getInfo());
		
		// 由于传给T形参的是Double,所以构造方法参数只能是Double或double
		Apple<Double> a2 = new Apple<Double>(5.67);
		System.out.println(a2.getInfo());
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开心星人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值