java 数据装箱及练习-对一个字符串中的数字进行排序

/*
八种数据类型:byte,short,int,long,float,double,char,boolean,
基本数据类型对象包装类:
为了方便操作基本数据类型值,将其封装成对象,在对象中定义了属性和行为丰富该数据的操作。
用于描述对该对象的类就称为基本数据类型对象封装类。

byte		Byte
short		Short
int			Integer
long		Long
float		Float
double		Double
char		Character
boolean		Boolean

基本数据类型 —— ——>字符串的方法:
	1,基本数值类型+"";
	2,用String类中的静态方法valueOf(基本类型数值);
	3,用Integer的静态方法valueOf(基本类型数值)


字符串—— ——>基本数据类型的方法:
	1,使用包装类中的静态方法 xxx parseXxx("xxx类型的字符串");
	eg:int i=int.parseInt("123");
		double d=double.parseDouble("234.56");
		byte
		short
		long
		float
		boolean
		以上都有parseXxx方法,但是Character没有这种方法。
	2,如果字符串被Integer进行了对象封装,可以使用非静态方法.intValue();
	将一个Integer对象转成基本数据类型。
	


进制转换:
1,十进制转其他进制:
Integer.toBinaryString(60);
Integer.toOctalString(60);
Integer.toHexString(60);

有一个比较通用的进制转换方法:
Integer.toString(60,2);//注意:这个方法和Object类中的toString()方法是不一样的,
                       //因为这个方法有参数,即toString(para1,para2);
					   //第一个参数是需要转换进制的数,第二个参数是指明需要被转成哪一进制。

2,其他进制转换为十进制:
Integer.parseInt("110",2);//解释:第一个参数是数值字符串,第二个参数是指明前面的数值的进制,即110是2进制的。
此方法结果返回的是十进制的整数类型的。



*/

class WrapperDemo
{
	public static void main(String[] args) 
	{
		int num=0;
		sop("Integer.MAX_VALUE:"+Integer.MAX_VALUE);
		sop("Integer.MIN_VALUE:"+Integer.MIN_VALUE);
		sop("Integer.SIZE:"+Integer.SIZE);

		sop("Byte.SIZE:"+Byte.SIZE);
		sop("Byte.MAX_VALUE:"+Byte.MAX_VALUE);
		sop("Byte.MIN_VALUE:"+Byte.MIN_VALUE);
		sop("Character.SIZE:"+Character.SIZE);
		
		Integer i=new Integer(num);

		int j=23456;
		String str=String.valueOf(j);
		sop("str"+str);

		
		sop("进制转化------十进制转其他进制---------------");
		sop(Integer.toBinaryString(60));
		sop(Integer.toOctalString(60));
		sop(Integer.toHexString(60));
		sop(Integer.toString(60,2));

		sop("进制转换------其他进制转十进制---------------");
		sop(Integer.parseInt("110",2));		
		sop(Integer.parseInt("60",10));
		sop(Integer.parseInt("3c",16));
		sop(Integer.parseInt("60",8));
		//sop(Integer.parseInt("3c",2));//这个会出错的。因为3c不是二进制的数
		
		Integer a=new Integer(123);//Integer(int value)是将一个整数封装成Integer对象。
		Integer b=new Integer("123");//Integer(String s)是将String参数所指示的int值封装成Integer对象。
		//Integer c=new Integer("3c");//这是会出错的,因为String所指示的必须是int类型的数值,即“ ”里面必须是数字。
		//sop("c"+c);
		sop("a.compareTo(b):"+a.compareTo(b));  //0代表对象内容相同。1代表a的ascii码值大于b的ascii码值。-1代表小于。

		sop("a"+(a+100));
		sop("b"+(b+100));

		sop("a==b:"+(a==b));//==比较的是两个对象,对象肯定不是一样的。
		sop("equals:"+a.equals(b));//equals覆盖重写了Object中的equals方法。
								   //Object中的equals方法是比较两个对象;
								   //Integer中的equals方法是比较两个对象的内容是否相同。


		Integer a1=127;//JDK1.5以后,自动装箱,如果装箱的是<<一个字节>>,那么该数据会被共享不会重新开辟空间。正如字符串一样。
		Integer a2=127;//但是一定要注意这是<<一个字节>>。一个byte的取值范围是-128~127。所以当a1和a2的值为128时,a1==a2返回的就是false了。
		sop(a1==a2);
		sop(a1.equals(a2));

		

		Integer in=new Integer("123");
		//in=in+123;
		//sop("in.............:"+in);
		//sop(Integer.parseInt(in));//注意这里是错误的,因为parseInt()里的参数必须是int数字的字符串,而在这里参数是Integer对象。
		try
		{
			int x=Integer.parseInt("123");  //parseInt()方法中参数必须为数字字符串,不能含有其他字符。
			//sop(x+1);
		}
		catch (Exception e)
		{
			sop(e.toString());
		}

	}

	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}



/*
对一个字符串中的数值进行从小到大的排序。

“20 78 9 -7 88 36 29”

*/
import java.util.*;
class WrapperTest 
{
	private static final String SPACE_SEPARATOR=" ";
	public static void main(String[] args) 
	{
		String str="20   78 9 -7 88      36    29";
		int[] arr=split(str);//分割并转为整型
		//Arrays.sort(arr);
		arr=search_sort(arr);//排序(升序)
		sop(arrayToString(arr));
		
		
		for(int i=0;i<arr.length;i++)
		{
			sop(arr[i]);
		}

	}
/*分割字符串:
1,先生成字符串数组;
2,将字符串类型的数组转化为整型数组,即对每一个元素进行parseInt转换;
3,对整型数组进行排序;
4,将整型数组转化为字符串输出。
*/
	public static int[] split(String str)  //分割并转化成整型数组
	{
		String[] arr=str.split(SPACE_SEPARATOR+"+");//注意:"+"代表中间可能有多个空格。
		int[] arr1=new int[arr.length];
		for(int i=0;i<arr.length;i++)
		{
			arr1[i]=Integer.parseInt(arr[i]);
		}
		return arr1;
	}
	
	public static int[] search_sort(int[] arr)  //对整型数组进行排序
	{
		for(int i=0;i<arr.length-1;i++)
		{
			for(int j=i+1;j<arr.length;j++)
			{
				if(arr[i]>arr[j])
				{
					int temp=arr[i];
					arr[i]=arr[j];
					arr[j]=temp;
				}
			}

		}
		return arr;

	}

	public static String arrayToString(int[] arr)
	{
		StringBuffer sb=new StringBuffer();
		for(int i=0;i<arr.length;i++)
		{
			if(i!=arr.length-1)
				sb.append(arr[i]+SPACE_SEPARATOR);
			else
				sb.append(arr[i]);
		}
		return sb.toString();
	}

	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值