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);
	}
}
时间: 2024-10-30 20:33:39

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

JAVA 统计键盘输入的一个字符串中的数字,字母大小写和其他。

package Code503; import java.util.Scanner;/*题目:统计键盘输入的一个字符串中的数字,字母大小写和其他. */ public class CodeStringCount { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入一个字符串"); String input = scanner

从字符串中提取数字串并排序(C语言实现)

#include "stdio.h" #include "stdlib.h" #include "string.h" typedef int BOOL; #define TRUE 1; #define FALSE 0; static void SplitBySeparator( char **arr, char *str, int size, char sep); void SortNums ( char* str, int size, int

java 判断一个字符串中的数字:是否为数字、是否包含数字、截取数字

题外话: JavaScript中判断一个字符是否为数字,用函数:isDigit(); 一.判断一个字符串是否都为数字 package com.cmc.util; import java.util.regex.Matcher; import java.util.regex.Pattern; public class DigitUtil { public static void main(String[] args) { String str="123d"; System.out.prin

Java基础知识强化59:把字符串中的字符进行排序的案例

1. 字符串中的字符进行排序 1 package cn.itcast_03; 2 3 /* 4 * 把字符串中的字符进行排序. 5 * 举例:"dacgebf" 6 * 结果:"abcdefg" 7 * 8 * 分析: 9 * A:定义一个字符串 10 * B:把字符串转换为字符数组 11 * C:把字符数组进行排序 12 * D:把排序后的字符数组转成字符串 13 * E:输出最后的字符串 14 */ 15 public class ArrayTest { 16

黑马程序员——java——对一个字符串中的数值进行从小到大的排序

对一个字符串中的数值进行从小到大的排序 例如: String s = "8 96 88 58 44 52 12 13 39 96 6"; public class SortIntToStringDemo { // 对一个字符串中的数值进行从小到大的排序. public static void main(String[] args) { String s = "8 96 88 58 44 52 12 13 39 96 6"; //调用自定义方法将字符串中的数字进行排序

按照字符串中的数组进行排序的方法(python)

有时候处理数据时,想要按照字符串中的数字的大小进行排序. 譬如,存在一组记录文件,分别为'1.dat','2.dat'... 当我把该文件夹中的所有记录文件名读到一个列表中,这些字符串的排列方式为: 如何让这些字符串按照数字排列? 1.首先通过正则表达式,提取出字符串中的数字 2.排序,选择built-in函数sorted进行排序 sorted(iterable, cmp=None, key=None, reverse=False) iterable:是可迭代类型;cmp:用于比较的函数,比较什

JAVA用标准库自己写一个字符串翻转方法,翻转字符串中字母非单词

例如输入:I love programming 输出:I evol gnimmargorp 算法思路就是:根据空格提取每一个单词,存放在一个buffer里进行翻转处理,再添加到新的字符串.最后新的字符串就完成整个方法过程. public class ReserveString { public String reserve(String sentence){ String backS = new String(); StringBuffer temp = new StringBuffer();

软件测试第二次作业 - 写一个Java程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。

题目一: 1. 写一个Java程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示.(单词之间用空格隔开,如“Hello World My First Unit Test”): 2. 编写单元测试进行测试: 3. 用ElcEmma查看代码覆盖率,要求覆盖率达到100%. Demo类: 1 import java.util.HashMap; 2 import java.util.Iterator; 3 import java.util.Map; 4 import java.

JAVA传入一个字符串,返回一个字符串中的大写字母

/** * * @param 传入一个字符串 * @return 返回一个字符串中的大写字母 */ private static String stringChange(String s) { if (Utils.isStrEmpty(s)) return ""; StringBuilder sb = new StringBuilder(); for (int i = 0; i < s.length(); i++) { if (Character.isUpperCase(s.ch