编程java字符串介绍.ppt_第1页
编程java字符串介绍.ppt_第2页
编程java字符串介绍.ppt_第3页
编程java字符串介绍.ppt_第4页
编程java字符串介绍.ppt_第5页
已阅读5页,还剩17页未读, 继续免费阅读

下载本文档

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

文档简介

Java组第3次交流讲件 字符串 线程熊斌斌Vincy 字符串 字符串概述 字符串是由字符组成的序列 Java中的字符串分为定长字符串 String 和可变字符串 StringBuffer abcdefghijklmnopqrstuvwxyz Java中的字符串实例是对象 不同于基本的数据类型 定长字符串 概念 字符串对象创建后其值将不可改变 但是可以通过修改原字符串来创建新的定长字符串 即对定长字符串的操作会产生一个新的字符串 定长字符串的操作封装在String类中 初始化方式 主要有两种 一种是常值赋值 另一种是利用String类的构造方法来进行赋值 如 StringStr hello Vincy StringSrt newString hello Vincy 定长字符串构造方法 显然常值赋值和构造赋值是有区别的 构造赋值拥有许多的功能 String类的构造方法有9个之多 主要形式是String Valuetype value intoffset intlength StringcharsetName 如String byte bytes int4 int8 StringcharsetName 将byte型数组的从第4位开始的8个数按照charsetName 即指定的字符集 产生一个字符串对象 其中Valuetype有byte和char两种 前者多为数值型数组 后者为字符数组 其构造功能多为转化数成字符串并生成对象 定长字符串类的特有方法 目前String类的特有方法 StringBuffer类所没有的 非常多 下面列出几个 char toChararray 将字符串转化成字符数组Stringconcat Stringstr 字符串连接合并booleanequals ObjectanObject 判断两个字串是否大小相等 大小写敏感Stringreplace charoldChar charnewChar 用字符newChar替换字符串中所有的字符oldChar 并返回一个新串 可变字符串 概念 可变字符串是指字符串对象创建后其值可以改变 而且修改后不会创建新的字符串 其实质是有一块可操作的内存区 可以对该内存区中存放的字符进行操作 所以可以改变其值和长度 可变字符串封装在StringBuffer类中 初始化方式 可变字符串对象的产生只能使用StringBuffer类的构造方法 如 StringBufferstrBuff newStringBuffer hello Vincy 可变字符串构造方法 可变字符串的构造方法只有三个 可变字符串的特有方法 目前StringBuffer类的特有方法 String类所没有的 非常多 下面列出几个方法 StringBufferreverse 将原字符串反序StringBufferappend ValueTypeb 将VT值b转换成字符串添加到原字符尾部 booleanchardoublefloatintlong StringBufferreplace intstart intend Stringstr 将原字符串从start位置到end位置的字符串替换成字符串str 两种字符串的共有方法 字符串应用实例 字符串反序分离字符串中的字符电子邮箱验证 字符串反序 需求 从键盘输入一个字符串 然后将其反序输出 如 hello Vincy 输出为 ycniV olleh 分离字符串中的字符 需求 从键盘输入一个字母 数字 汉字组成的混合字符串 然后将各个字符分拣出来并输出 如 输入 19你he好芬l奇lo9Vin2c0y306 输出 19920306 helloVincy 你好芬奇 clickhere 电子邮箱验证 需求 从键盘输入一个电子邮箱地址 然后判断其合理性 分析 合理的邮箱址应具有 和 且 不应出现在首位 其后至少要有一个 最后一个 后面的形式也是有规定的 但是域名尾种类较多 此处不方便规范 于是忽略这条限制 clickhere 多线程 多线程的意义 一个进程就是一个执行中的程序 每个程序都有自己独立的内存空间和一组系统资源 每个进程的内部数据和状态时完全独立的 线程与进程相似 是一个执行的程序 是程序中单个顺序的流控制 但与进程不同的是 同一个进程的多个线程共享一块内存空间和一组系统资源 而线程本神的数据通常只有微处理器的寄存器数据 以及一个供程序执行时使用的堆栈 所以 线程也被称为轻负荷进程 线程是真正的功能提 一个进程中可以包含多个线程Java程序通过流控制来执行程序流 程序中单个顺序的流控制称为线程 多线程是指在单个程序中可以同时运行多个不同的线程 多线程的好处与实现 使用多线程的目的一般有两个 一是多个线程分别执行不同的任务 二是多个线程共同完成同一个任务 可提高效率 实现 有两种方法 一是继承Thread类 二是实现Runable接口 多线程有两种类型 一是多个线程分别执行不同任务 另一个是多个线程共同完成同一个任务 实现的代码形式 1 继承Thread类classMyThreadextendsThread publicvoidrun 这里写上线程的内容 publicstaticvoidmain String args 使用这个方法启动一个线程newMyThread start 2 实现Runnable接口classMyThreadimplementsRunnable publicvoidrun 这里写上线程的内容 publicstaticvoidmain String args 使用这个方法启动一个线程newThread newMyThread start 这里主要介绍Thread类的继承 完成不同任务 在完成不同任务的多线程中 每个线程所执行的任务不同 例如编写一个程序 其中一个线程计算1到50的和 另一个线程计算51到100的和 分别将计算结果输出 两个线程分别执行不同的任务 完成同一任务 在完成同一任务的多线程中 首先将任务分解 然后每个每个线程完成一个子任务 则原来的任务也完成 例如 编写一个多线程程序 计算1到100的和 其中一个线程计算1到50的和 另一个线程计算51到100的和 计算完成后 将两个线程的计算结果相加后输出 完成同一任务的多线程 publicclassTestMyThread2 执行主类publicstaticvoidmain Stringarg ThreadDatadata newThreadData newMyThread2 Thread1 1 50 data start 匿名启动第一个线程newMyThread2 Thread2 51 100 data start 匿名启动第二个线程while true if data getFlag 2 System out println 计算结果为 data getSum break while classMyThread2extendsThread privateintbegin end sum privateThreadDatadata publicMyThread2 Stringname intbegin intend ThreadData super name this begin begin thisend end thisdata data publicvoidrun sum 0 for inti begin i end i sum I data setSum sum classThre

温馨提示

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

评论

0/150

提交评论