第三章JAVA 中的数组及字符串.doc_第1页
第三章JAVA 中的数组及字符串.doc_第2页
第三章JAVA 中的数组及字符串.doc_第3页
第三章JAVA 中的数组及字符串.doc_第4页
第三章JAVA 中的数组及字符串.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

:JAVA中的数组及字符串一:数组1:一维数组:(JAVA中的数组类似于C中的指针形式的数组)l 定义:type var_name: 如 int a; float b;int month_days;l 使用:var_name=new typesize;如a=new int10; month_days=new int12;java的专业用法。l 也可以在定义时,直接赋值如:int a=1,2,3,4,5;(这一点与C相同);ll 其它与C语言中的数组概念相同,包括利用数组下标赋值、取值以及内存中的存储方式等。l 与C语言不同,数组也是类(对象),有许多方法可调用(如长度等)二:多维数组(二维数组)l 定义:int two=new int45;/类似于一维数组;l 二维数组的另几种定义方法:1:int two=1,2,3,4,0,0,0,0,3,4,5,6三行四列的二维数组(与C相同)2:int two=new int4;two0=new int5; two1=new int5; two2=new int5; two3=new int5;也可:two0=new int1; two0=new int2; two0=new int3; two0=new int4;注意:数据也是对象:int n=new int10;int x=n.length;System.out.println(n数组的长度: +x);结果为10;总结:数组相当于C语言中的指向数组的指针,数据的初始化有二种形式工:定义是赋值,或初始化(NEW运算后)赋值二种形式。数据也是对象。数组的copy;如:int a=new int10;for(int i=0;i10;i+) ai=i;int b=a;class Stackint stck;int top;Stack()stck=new int10;top=-1;Stack(int length)top=-1;stck=new intlength;void push(int item)if(top=9)System.out.println(stack is full);elsestck+top=item;int pop()if(top0)System.out.println(堆栈已空);return 0;elsereturn stcktop-;public class statckdemopublic static void main(String args)Stack mystack1=new Stack();Stack mystack2=new Stack(10);for(int i=0; i10;i+)mystack1.push(i);for(int i=10; i20;i+)mystack2.push(i);for(int i=0; i10;i+)System.out.println(mystack1.pop();for(int i=0; i10;i+)System.out.println(mystack2.pop();三:字符串1:在C语言中:char str30; strcpy(str,”hello”);其主要内容为字符串的定义及相关操作;数据结构中,也有专门涉及。2:在JAVA中,字符串为系统提供的类, 其名为 String 和StringBuffer类。(属于java.lang包)可以被程序自动利用。二个类均没有子类(在java的类体系中)String str=”this is a test”;/str为类“String”的一个对象System.out.println(str);3:“String”类与“StringBuffer”的主要区别:前者字符串内容(值)不可改变(只读)。后者字符串内容可改变。(能写)例:/*以下示例表示“String类的对象为只读对象,而”StringBuffer类的对象为可写*/String str2=new String(is a String);str2.replace(i,w);System.out.println(str2: + str2);StringBuffer str5=new StringBuffer(hello); str5.replace(2,4,was);System.out.println(str5: + str5);/*当然“String类的对象的字符串并不意味它的内容不可改变,被说明为String引用的变量可以指向另外一些字符串*/String s1=hello;System.out.println(s1: + s1);s1=welcome;System.out.println(s1: + s1);/约定:初始化才可引起引用的变量的地址的改变。3:如何理解系统类“String”; 一:是Object的子类,(当然许多方法重写)二:构造函数(近10种构造函数),主要:l String str=new String();/空字符串;l String str=new String(String strobj);String str=new String(“hello”);l Char c=J,A,V,A;String str=new String(c);String str1=new String(str);String str2=new String(c,2,3);/ String(char chars, int startindex,int number);l :String s=”welcome”;/字符串常量,系统自动产生一字符串对象,今引用s指向该对象。三:字符串常量“hello”:就是String类的一个对象,类似于C语言中字符数组与字符串常量的关系:如可用:String str1=”hello”. replace(l,w);四:字符串对象中的“”运算符重载String s=”hello”+”www”;(“”类似于C语言中的strcat()连接功能);int a,b;a=b=3;System.out.println(“s=:” +s +a+b);System.out.println(“s=:” +s +(a+b);五:字符串类的主要方法属性(字符串处理)1:基本方法:l 求长度方法 int length().;如:System.out.println(“length=: ”+“hello”.length();l char charAt(int index);/相当于数组中的下标,如:char a=“hello”.charAt(1);2:字符串处理(大小写转换,查找及替换,连接,求子串,相等判断等)l String toLowerCase();/返回字符串对象。l String toUpperCase();如:String str=”hello”;str.toUpperCase();System.out.println(“str=: “ +str);/结果:str=hello;String str1=new String(str.toUpperCase();/String str1=str.toUpperCase();System.out.println(“str1=: “ +str1);/结果:str1=HELLO;研究一下以下实例:str= str.toUpperCase();System.out.println(“str=: “ +str);/结果:?; 请思考!。l 字符串连接 String concat(String str);String t=”this is”.concat(“ String”);结果:t为:“this is String”;如:String str1=”this is”; str1.concat(“String”); System.out.println(“str1=: “ +str1);/结果:?; 请思考!l 字符串比较boolean equals(String str);/目标字符串对象与”this”字符串进行比较。boolean equalsIgnoreCase(String str);“= =”可用于字符串对象比较,但与上述二个方法有区别。如:String s=”hello”;String t=new String(“HELLO”);String s1=new String(s);String t1=s;System.out.println(“s equals t=:”+ s.equals(t);/结果:s equals t=falseSystem.out.println(“s equalsIgnoreCasse t=:”+ s.equalsIgnoreCasse(t);/trueSystem.out.println(“s = = s1=:”+( s= =s1);/ s = = s1=false;System.out.println(“s = = t1=:”+( s= =t1);/ s = = t1=true;RegionMatch():部分比较int compareTo(String str);/若结果小于0;则“this“字符串 (调用字符串) 小于str.若结果大于0;则“this“字符串 (调用字符串) 大于str.若结果等于0;则“this“字符串 (调用字符串) 等于str.关于作业:回文判断;public class abcdpublic static void main(String args)int n=args.length;if(n=0)System.out.println(请输入字符串);return;String str1=args0;for(int i=0,j=str1.length()-1;i(str1.length()/2);i+,j-)if(str1.charAt(i)!=str1.charAt(j)System.out.println(不是回文);return;System.out.println(是回文);进行改进:class Hfstatic boolean hf(String str)for(int i=0,j=str.length()-1;i(str.length()/2);i+,j-)if(str.charAt(i)!=str.charAt(j)return false;return true;public class abcdpublic static void main(String args)int n=args.length;if(n=0)System.out.println(请输入字符串);return;if(Hf.hf(args0)System.out.println(是回文);else System.out.println(不是回文);另外一种方法:public class abcdpublic static void main(String args)int n=args.length;if(n=0)return;String str1=args0;StringBuffer strb=new StringBuffer(str1);String str2=new String(strb.reverse();if(str1.equals(str2)System.out.println(是回文);else System.out.println(不是回文);示例:class a1static String arr=Now,is,the,time,for,all,good;public static void main(String args)int n,m;for( n=0; narr.length;n+)for( m=n+1;m0)String t=arrn;arrn=arrm;arrm=t;System.out.println(arrn); /System.out.print(arrn+ );Now all for good is the time 3:利用valueOf()方法实现数据转换String valueOf(double num); String s=String.valueOf(3.14);/静态方法。String valueOf(long num);注意:相反转换:Integer及Long类如:int n=Integer.praseInt(“3”);又如:String s=JOptionPane. showInputDialog(“请输入一个整数”);int n= Integer.praseInt(s);/有可有发生异常(NumberFormatException)4:其它方法l replace(charoldChar, charnewChar),replaceAll,replaceFirstl startsWith(Stringprefix), public boolean endsWith(Stringsuffix)l public String substring(intbeginIndex,l intendIndex)StringBuffer类结构:java.lang.Object java.lang.StringBuffer主要特点:系统为该对象分配内在会自动扩展以容纳新增的文本。主要适用:字符串值在程序中一直变化中。如:文件读写,构造函数:StringBuffer str=new StringBuffer();StringBuffer(Stringstr);主要方法:l append方法:主要有:public StringBuffer append(Stringstr);public StringBuffer append(StringBufferstr);public StringBuffer append(char a);public StringBuffer append(inti)如:StringBuffer str=new StringBuffer();int n=3;String str1=”HELLO”;str. append(str1);str. append(n); str. append(c);str. append(str1). append(n). append(c);l insert()方法:指定地点插入单字字符、字符串等。l delete()方法。l public void setCharAt(intindex, char

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论