4.数组,字符串常用类的处理

上传人:yx****d 文档编号:243370243 上传时间:2024-09-21 格式:PPT 页数:24 大小:119KB
返回 下载 相关 举报
4.数组,字符串常用类的处理_第1页
第1页 / 共24页
4.数组,字符串常用类的处理_第2页
第2页 / 共24页
4.数组,字符串常用类的处理_第3页
第3页 / 共24页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,数组,字符串的处理,1,数组,数组是具有相同数据类型的数据的集合。,1.,创建指定长度的数组:,数据类型 变量名, =new,数据类型,数组长度,;或,数据类型, ,变量名,=new,数据类型,数组长度,;,int, a=,new,int,10;/,声明长度和容量为,10,的数组,2.,在创建数组的时候初始化为元素赋值,数据类型, ,变量名,=,值,1,,值,2,,值,3,,,,值,N,;或,数据类型 变量名, =,值,1,,值,2,,值,3,,,,值,N,;,String s=A,B,C,D;/,声明长度和容量为,4,的数组,并赋值,2,数组,访问数组的元素和长度,数组的长度,数组名,.length,;,上面数组的长度为:,System.out.println(s.length);,获取数组元素的值,数组元素的下标从,0,开始:,所以第一个元素是:数组名,0,System.out.println(s0);,最后一个元素是:数组名,数组长度,-1,System.out.println(ss.length-1);,为数组元素赋值:,s0=A;s1=B;s4=E;/,由于数组的长度是,5,,所以我们只能放,5,个元素,String s =new String5;,如果越界,访问和操作数组元素,则会抛出,ArrayIndexOutOfBoundsException,异常。,3,数组,数组的遍历。,String s=A,B,C,D;,1.,简单,for,循环,for(int i=0;is.length-1;i+),System.out.println(si);,增强性,for,循环,for(,数据类型 变量名,:,集合,),2.,增强性,for,循环,for(String s1:s),System.out.println(s1);,4,数组,数组的特点,String s=A,B,C,D;,数组具有两个特点:,1.,数据类型确定,2.,对象创建后,长度是固定不可变的,如上,,String,型数组中,除了,String,型的字符串,其他类型都不能再存放。,如,s0=5;,将会引发,而且,数组的最大长度是,4,,不能再修改。,如,s.length=10;,是非法的。,5,多维数组,Java,支持多维数组。,String s=new String33 ;,相当于如下表:,s00,s01,s02,s10,s11,s12,s20,s21,s22,6,多维数组,特殊的二维数组。当第二维的数组长度不一致时。,String s=new String3 ;,s0=new StringA;,s1=new StringB,C;,s2=new StringD,E,F;,等价于,String s2=A,B,C,D,E,F,;,7,多维数组,遍历二维数组,for(int i=0;is.length;i+),for(int j=0;jsi.length;j+),System.out.println(s+i+j+,:,+sij);,输出如下:,s00,:,A,s10,:,B,s11,:,C,s20,:,D,s21,:,E,s22,:,F,8,String,数据类型,String,不是基本数据类型,它是一个对象。,String,类对象的对象值是不能修改的,因为它是,final,的 。,String,类的常用构造方法:,String();,创建一个内容为空的字符串,String(String value);,字符串参数指定字符串的内容,String(char value);,字符数组参数指定字符串的内容,String(byte bytes);,根据本地平台默认的字符编码由字节数组构造一个字符串,String(byte bytes,String charsetName);,根据,charset,指定的字符编码,由字节数组构造一个字符串,String,类的常用方法:,length():,返回字符串的字符个数,9,String,数据类型,String,不是基本数据类型,它是一个对象。,String,类对象的对象值是不能修改的,因为它是,final,的 。,String,类的常用方法:,char charAt(int index);,返回字符串中,index,位置上的字符,索引从,0,开始,getChars(int srcBegin,int srcEnd,char dst,int dstbegin):,从当前字符串中拷贝从,srcBegin,到,srcEnd,位置的字符串到,dst,数组中,,dstbegin,为提前的字符存放到数组中的起始位置。,equals(Object str),和,equalsIgnoreCase(String str):,判断两个字符对象的内容是否相同。,equalsIgnoreCase,方法不区分大小写。,int compareTo(String str):,按字典次序比较两个字符串大小,如果源串较小,则返回一个小于,0,的值,如果相等则返回,0,,否则返回一个大于,0,的值。,indexOf(),和,lastIndexOf():,在字符串检索特点字符或字符串。从前和从后查找字符,返回索引,不到返回,-1.,concat(String s):,把字符串,s,附加在当前字符串的末尾,10,String,数据类型,String,不是基本数据类型,它是一个对象。,String,类对象的对象值是不能修改的,因为它是,final,的 。,String,类的常用方法:,String subString(int beginIndex),和,String subString(int beginIndex,int endIndex),从,beginIndex,位置截取字符串到,endIndex,(包头不包尾),如果没有,beginIndex,则截取到末尾。,String split(String regex):,根据参数,regex,把原来的字符串分割为几个字符串。,replace(String regex,String replacement):,把字符串中的,regex,替换为,replacement,。,trim():,把字符串首位的空格删除。,toUpperCase(),和,toLowerCase():,把所有字母改为大写或小写,11,String,数据类型,String,不是基本数据类型,它是一个对象。,String,类对象的对象值是不能修改的,因为它是,final,的 。,String str1=123;,str1=456;,String str2=123;,String str3=,new,String(123);,上面示例第二行,,str1,的值明显被改变了。,所谓的值不能修改是指,虽然,str,引用的值现在变成,456,了,可是,123,还是存在于,字符串池,(,或者栈,),中的,不能被修改。,在,str2,的时候,在字符串池中存在了,123,,直接给,str2,,不用创建。,str3,,池中不再创建,遇到,new,关键字,在,堆,上创建对象。,思考:以上代码总共创建了几个对象?,12,StringBuffer,与,StringBuffer,不同,StringBuffer,是一个可变字符序列。,StringBuffer stbu=,new,StringBuffer(123);,常用方法,说明,setCharAt(int index,char ch),将字符,ch,放到指定的,index,位置,insert(int offset,char ch),在,offset,位置插入字符,ch,append(d);,在字符串末尾添加内容,d,reverse();,字符串反转,delete(int start,int end),删除指定字符串着中的字符,replace(int start,int end,String str),替换字符串,substring(int start),substring(int start,int end),返回字符串的一部分值,13,String,和,StringBuffer,String,不可变,而,StringBuffer,可变,。,对,StringBuffer,进行操作,是在原来的对象之上进行改变,.,而对,String,进行操作,是,创建新的对象,.,StringBuffer stbu=,new,StringBuffer(123);,stbu.append(456);,stub,的值由,123,变成了,132456,。,但是却并没有重新分配内存空间。所以在,字符串经常会被修改的情况下,,,StringBuffer,的效率明显的高于,String,。,可改变的字符串具有一个很大的优点,:,编译器可以把字符串设为共享的。,所以在选择,String,还是,StringBuffer,的时候要视情况而定。,14,Math,类,java.lang.Math,类提供了许多数学运算的静态方法。,Math,是,final,类型的,构造方法是,private,。,两个静态常量:,E,(自然对数)和,PI(,圆周率,),主要方法:,abs,:返回绝对值,ceil,:返回大于或等于参数的最小整数,floor(),:返回小于或等于参数的最大整数,max(),和,min(),:返回两个参数的较大值,较小值,random(),:返回,0.01.0,之间的,double,随机数,包括,0,,不包括,1,round(),:四舍五入的整数值,sqrt(),:平方根函数,pow(),:幂运算,sin(),:正弦函数,cos(),:余弦函数,15,Random,类,java.util.Random,类提供了一系列用于生成随机数的方法。,两个静态常量:,nextInt(),:返回一个,int,类型的随机数,nextInt(int n),:返回一个,int,型的整数,大于,0,,小于,n,nextLong(),:返回一个,long,型的随机数,nextFloat(),:返回一个,float,型的随机数,nextDouble(),:返回一个,double,型的随机数,nextBoolean(),:返回一个,boolean,型的随机数,,true,或,false,可以用随机数来实现一个猜拳的小程序。,16,处理日期类,-date,java.util.Date,包含一个,long,型数据,表示自,1970,年,1,月,1,日,00:00:00,到现在,的毫秒数。,java.text.DateFormart,对日期进行格式化。,lendar,可以灵活的设置读取日期中的年月日,时分秒等信息。,Date date=,new,Date();,System.,out,.println(date.getTime();,System.,out,.println(date);,可能输出:,1247223019015,Fri Jul 10 18:50:19 CST 2009,date,:,17,处理日期类,-DateFormat,Date date=,new,Date();,SimpleDateFormat sdf=,new,SimpleDateFormat(yyyy-MMMM-dd-EEEE);,System.,out,.println(sdf.format(date);,sdf=,new,SimpleDateFormat(yyyy-MM-dd hh:mm:ss);,System.,out,.println(sdf.format(date);,可能输出:,2009-,七月,-10-,星期五,2009-07-10 06:58:32,DateFormat,:,DateFormat,是一个抽象类,他有一个子类,SimpleDateFormat.,上面我们看到有几个特殊字符串,通过输出,我们现在来认识一下:,18,处理日期类,-DateFormat,yyyy,四位长度的年,MMMM,中文月,dd,日,EEEE,兴趣,yy2,位长度的年,MM2,位长度的月,hh,时,mm,分,ss,秒,DateFormat,:,因为,yy,是用,2,位长度表示年,所以表面上看起来,1955,和,2055,显示都会是,55,。,日期通配符解释:,19,处理日期类,-DateFormat,SimpleDateFormat sdf=,new,SimpleDateFormat(yyyy-MM-dd hh:mm:ss);,String s=2008-07-10 07:18:53;,Date date=sdf.parse(s);,System.,out,.println(date);,DateFormat,:,注意,要转换成日期对象的字符串,格式必须与,SimpleDateFormat,中预定义的格式一致,否则将发生转换异常。,parse(String s),方法,将字符串型的日期,s,转换为一个日期对象:,计算,d1,和,d2,日期直接相差几天:,(d1.getTime()-d2.getTime()/(1000*60*60*24),20,处理日期类,-Calendar,GregorianCalendar gc=,new,GregorianCalendar();,gc.clear();/,清除日期的各个部分,gc.set(Calendar.,YEAR, 2007);,gc.set(Calendar.,MONTH, 7);,gc.set(Calendar.,DAY_OF_MONTH, 21);,gc.set(Calendar.,HOUR_OF_DAY, 12);,gc.set(Calendar.,MINUTE, 56);,gc.set(Calendar.,SECOND, 50);,System.,out,.println(gc.get(Calendar.,MONTH,);,System.,out,.println(,new,SimpleDateFormat(yyyy-MM-dd hh:mm:ss EEEE).format(gc.getTime();,Calendar,类的,set(),和,get(),方法可以用来设置和读取日期的指定部分。,Calendar,是一个抽象类,不能实例化,他有一个具体的子类,,GregorianCalendar,。,21,处理日期类,-Calendar,7,2007-08-21 12:56:50,星期二,Calendar,输出如下:,可以看到,我们对月份设置的数值是,7,,可是确输出了,8,月。,因为在西方,,1,到,12,月是用数字,0-11,来表示的。,同时,星期的表示,是从星期天到星期六,依次用,1-7,表示,22,BigDecimal,BigDecimal,类支持浮点数的精确加减乘除等运算,可满足用户精度。,java,里面有两个浮点数据类型,,double,和,float,,但是都不适合进行精度计算。,add(BigDecimal b),:进行精确的加法计算,subStract(BigDecimal b),:进行精确的加法计算,multiply(BigDecimal b),:进行精确的加法计,divide(BigDecimal b,int scale,RoundingMode more),:进行精确的加法计算,scale,指定精确到小数点后几位,,mode,取值为,BigDeciaml.ROUND_HALF_UP,,表示采取四舍五入,23,BigDecimal,BigDecimal,BigDecimal b1=,new,BigDecimal(Double.,toString,(123.52);,BigDecimal b2=,new,BigDecimal(Double.,toString,(123.53);,System.,out,.println(b1.add(b2).doubleValue();,System.,out,.println(b1.subtract(b2).doubleValue();,System.,out,.println(b1.multiply(b2);,System.,out,.println(b1.divide(b2,2,BigDecimal.,ROUND_UP,);,以上操作基本能满足需求。,其他一些不常用的,BigDecimal,的方法和操作,可具体的参见,API,。,24,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!