JAVA数组向量字符串(11级).ppt
《JAVA数组向量字符串(11级).ppt》由会员分享,可在线阅读,更多相关《JAVA数组向量字符串(11级).ppt(99页珍藏版)》请在三一办公上搜索。
1、,第3章 字符串、数组和向量,字符串学习的任务,从一个带有路径的文件名中分离出文件名和路径,C:Program FilesJdkreadme.html,字符串,在Java中,字符串被当作对象来处理。字符串分类字符串常量创建之后不能再修改。用String类来创建字符串常量。字符串变量创建之后可以做修改。一般用StringBuffer类来创建。,String类和StringBuffer类都在java.lang包中。,类String字符串定义,可以用字符串常量直接初始化一个String对象 String s=Hello World;通过构造方法,char chars=a,b,c;String s=n
2、ew String(chars);,String s=new String(“hello”);或:String s=“hello”;,String s=new String();,byte bytestr=97,98,99;String s=new String(bytestr);,字符串变量和普通变量的区别,String构造方法的使用举例,public static void main(String args)String s,s1,s2,s3,s4,s5,s6,s7;byte byteArray=(byte)J,(byte)a,(byte)v,(byte)a;char charArray=
3、程,序,设,计,课,程;StringBuffer ss=new StringBuffer(欢迎);s=new String(Hello!);s1=new String();s2=new String(s);s3=new String(charArray);s4=new String(charArray,2,4);s5=new String(byteArray);s6=new String(byteArray,0,1);,Hello!Hello!程序设计课程设计课程JavaJ,字符串,长度,由 length()方法确定,语法,public int length();,返回字符串中的字符数,Str
4、ing的常用方法字符串长度,String name=John Smith;(name.length();,String的常用方法字符串比较,字符串变量 1,字符串变量 2,字符串变量 1,字符串变量 2,由 equals()方法确定,检查字符串变量指向的字符串是否相等,同一个对象,用=运算符检查,检查字符串变量是否指向同一个字符串对象,public class StringCompare public static void main(String args)String s1=abc;String s2=abcd;System.out.println(s1=s2);System.out.pr
5、intln(s1.equals(s2);String t1=new String(abc);String t2=new String(abc);System.out.println(t1=t2);System.out.println(t1.equals(t2);String t3=t1;System.out.println(t1=t3);System.out.println(t1.equals(t3);,字符串比较举例,程序运行结果如下:falsefalsefalsetruetruetrue,字符串比较方法,字符串连接,在Java中,运算符“”可以用来实现字符串的连接,如:String s=“
6、He is”+age+”years old.”假设整数型变量age的值为15,那么,s的值为“He is 15 years old”。,搜索字符和字符串,搜索字符和字符串,搜索字符串举例_判断邮箱正确性,public class SearchString public static void main(String args)String email=JohnS;int n1=email.indexOf();int n2=email.indexOf(.);if(n1n2)(“该电子邮件地址有效);else(“该电子邮件地址无效);,邮箱格式:XXXXXX.com判断:应该在.之前,字符串提取、
7、连接、替换等方法,字符串应用举例,public class StringMethods public static void main(String args)String s1=Hello world;String s2=Hello;System.out.println(s1.substring(3,8);System.out.println(s2.concat(World);System.out.println(s2.replace(l,w);System.out.println(s1.trim();,lo woHelloWorldHewwoHello world,更改字符大小写方法,He
8、llo,使用 toUpperCase()方法,HELLO,HELLO,使用 toLowerCase()方法,hello,语法,public String toUpperCase();,语法,Public String toLowerCase();,更改字符大小写方法举例,public class StringTest public static void main(String args)String name=new String(George);(“姓名是+name);int length=name.length();(“姓名的长度为”+length+“个字符);(“姓名用大写形式表示为:
9、);String nameUppercase=name.toUpperCase();System.out.println(nameUppercase);,任务实现:分离文件名和路径,public class HelloWorldApp public static void main(String args)String fullPath=F:javamyexamplea.java;int pos=fullPath.lastIndexOf();System.out.println(fullPath.substring(0,pos);System.out.println(fullPath.subs
10、tring(pos+1);,C:Program FilesJdkreadme.html,字符串与模式匹配,regionMatchesboolean regionMatches(int toffset,String other,int ooffset,int len)boolean regionMatches(boolean ignoreCase,int toffset,String other,int ooffset,int len)上述两个方法都是用来进行模式匹配的,匹配成功则返回true,否则返回false。其中,toffset和ooffset分别指明当前字符串和参数字符串中所要比较的子串
11、的起始索引位置,len指明比较的长度,而ignoreCase指明比较时是否区分大小写。对于第一种方法,比较是区分大小写的。,class zcf public static void main(String arg)String str1=12abc56rg;String str2=sfabc16;int i,j,k;for(i=1;istr1.length();i+)/子串的长度从1开始 for(j=0;jstr1.length();j+)/str1的子串/判断str1中的子串是否在str2中出现 for(k=0;k=str2.length();k+)if(str1.regionMatches
12、(j,str2,k,i)System.out.println(str1.substring(j,j+i);/截取子串,找两个字符串出现的相同子串,Str1:12abc56rgStr2:sfabc16,1abc6abbcabc,字符串与基本数据的相互转化,各种基本数据类型与String类型之间可以通过方法相互转换。String类中的valueOf()系列方法用于从基本数据类型转换成字符串。public static String valueOf(Boolean b)public static String valueOf(char c)public static String valueOf(i
13、nt i)public static String valueOf(long l)public static String valueOf(float f)public static String valueOf(double d),将字符串转化为基本数据类型Java.lang包中的各种基本数据类型类都具有相应的类方法实现转化操作。public static byte parseByte(String s)public static short parseShort(String s)public static long parseLong(String s)public static int
14、 parseInt(String s)public static float parseFloat(String s)public static double parseDouble(String s),String s=“123”;int i=Integer.parseInt(s);,字符串与基本数据的相互转化,字符串与字符数组的转化,字符数组 转换为 字符串对象String(char)String(char,int offset,int length)字符串 转换为 字符数组public void getChars(int start,int end,char c,int offset)将
15、当前字符串中从start至end-1位置上的字符复制到数组c中,并从数组c的offset处开始存放。public char toCharArray()初始化一个字符数组,该数组的长度与字符串长度相等,并将字符串对象的全部字符复制到该数组中。,字符串与字节数组用字节数组创建字符串对象String(byte)String(byte,int offset,int length)将字符串转换为字节数组public byte getBytes()将当前字符串转化为一个字节数组。,字符串与字节数组的转化,例:public class Example5_10 public static void main(
16、String args)byte d=你我他.getBytes();(数组d的长度是:+d.length);String s=new String(d,0,2);System.out.println(s);,例:public class Example5_8public static void main(String args)String s=“华北电力大学计算机专业;char c=s.toCharArray(),d;d=new char6;s.getChars(8,14,d,0);System.out.println(c);System.out.println(d);,java.util包
17、中StringTokenizer类所定义的对象,可以用来对字符串进行分析。比如一个句子、一个段落,一篇文章字、词个数统计等。StringTokenizer类的两个常用构造方法:StringTokenizer(String s)为字符串s构造一个分析器,使用默认的分隔符集合,即空格符、换行符、回车符、Tab符、进纸符。StringTokenizer(String s,String delim)为字符串s构造一个分析器,参数delim中的字符作为分隔符。,StringTokenizer类字符串词法分析器,StringTokenizer类的成员方法nextToken():逐个获取字符串的每一个语言符
18、号单位hasMoreTokens():判断字符串中是否还有语言符号countTokens():统计字符串中共有多少个语言符号,import java.util.*;public class Example5_7 public static void main(String args)String s=I am James,she is my girlfriend;StringTokenizer fenxi=new StringTokenizer(s,);int number=fenxi.countTokens();while(fenxi.hasMoreTokens()String str=fe
19、nxi.nextToken();System.out.println(str);(还剩+fenxi.countTokens()+个单词);System.out.println(s共有单词:+number+个);,程序运行结果:,不变性,String类,创建后,直接修改,不变性的概念,解决方法,StringBuffer 类,String 的对等类,表示可增加和可编写字符的可变序列,将字符插入到字符串中间或附加到字符串末尾,StringBuffer 类,StringBuffer 用于表示可以修改的字符串 使用连接运算符(+)的字符串会自动创建字符串缓冲对象,StringBuffer 类的方法,St
20、ringBuffer 类的方法,String与StringBuffer的转换,产生一个內容与String对象str相同的StringBufffer对象:StringBuffer ss=new StringBuffer(str);产生一个內容与StringBuffer对象ss相同的String对象:String s=ss.toSting();,class demoOfStringBuffer public static void main(String buf)StringBuffer ss=new StringBuffer(abc);(buffer=+ss);(“length=”+ss.len
21、gth();(capacity=+ss.capacity();,运行结果:buffer=abclength=3capacity=19,从运行结果我们可以看到为附加处理保留了空间。注意:capacity()与length()的区别。,举例,public class StringBuf public static void main(String args)StringBuffer buf=new StringBuffer(Java);buf.append(“Guide Ver1/”);buf.append(3);int index=5;buf.insert(index,Student);inde
22、x=23;buf.setCharAt(index,.);int start=24;int end=25;buf.replace(start,end,“6);String s=buf.toString();/转换为字符串 System.out.println(s);,Java Student Guide Ver1.6,class StringOp public static void main(String args)String s1=1234567;StringBuffer s2=new StringBuffer(abc);System.out.println(s1.substring(5)
23、;System.out.println(s1.concat(s2.toString();if(pareTo(s2.toString()=0)System.out.println(s1与s2相等);elseSystem.out.println(s1与s2不相等);int i=s1.length();s2=new StringBuffer(i);for(int j=i-1;j=0;j-)s2.append(s1.charAt(j);System.out.println(Integer.parseInt(s1);System.out.println(字符串s2:+s2);,1.C和C+的字符串只是简
24、单的以0结尾的字符数组,而Java中,字符串是一个封装的对象,这种处理对于编程者提供了许多有利之处。2.C和C+中可以通过指针直接对字符串所在的内存地址进行操作,并且不对越界情况进行检查,Java中只能通过类String或StringBuffer所提供的方法对字符串进行操作,并且要对越界情况进行检查并报告,这样大大增加了安全性。,Java与C和C+处理字符串的差别,编程练习,输入的一个字符串中包含了一个人的姓名、性别和年龄。中间用空格隔开。要求从该字符串中提取出姓名、性别和年龄并赋给相应的变量。表示年龄的变量是整型的。,搜索字符串S中是否包含s1,如果包含,则替换为s2。注意s1和s2的长度不
25、一定相等。,数组,数组是一种最简单的复合数据类型,是一组同类型有序数据的集合。数组分为一维数组和多维数组。数组的元素既可以是简单类型,也可以是引用类型。,Java中创建数组的步骤,声明数组创建数组空间,声明一维数组的两种形式 数组元素类型数组名;数组元素类型 数组名;,一 维 数 组,创建数组空间 数组名new 数组元素类型元素个数;,可以为基本类型或复合类型,不能指出数组中元素的个数,int a;,float f1,f2;,a=new int3,f1=new float10;f2=new float20;,简单类型数组分配内存示意图,0 xb1ca,int a;int a;定义一个int类型
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 数组 向量 字符串 11
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6509853.html