版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、*第一章1.开发JAVA程序的步骤:a.编写源程序,以java作为后缀b.编译源程序,以class作为后缀,即字节码文件c.运行字节码,得到运行结果编译需要用到java为我们提供的一个编译器编译器是一个软件编译语法:javac.exe 源文件名称javac 源文件名运行需要用到java为我们提供的一个解释器解释器 是一个软件运行语法:java.exe 字节码文件名称java 字节码文件名称2.控制台输出语句:System.out.println("内容");System.out.print("内容");区别:a.是否换行:System.out.print
2、ln("内容");输出"内容"和一个换行System.out.print("内容");仅仅输出"内容"b.可否不输出"内容"System.out.println();仅仅输出一个换行System.out.print();错误的注意:当输出的"内容"是数字时,可以不用添加双引号""3.常见的转义符:n将光变移动到下一行的第一格t将光变移动到下一个水平制表位置4.注释:作用为某些关键或核心代码添加说明的一种方式,便于程序的阅读和维护,总之,注释是给程序员看的。
3、分类单行注释:语法:/注释的内容多行注释:语法:/*注释的内容*/应用场景当注释的内容比较少时,一般采用单行注释当注释的内容比较多时,一般采用多行注释5.Java代码书写规范:a.结束必须和开始所在行的首字符纵向对齐;b.开始不建议单独起一行,而是放在上一行代码的最后,并且在开始之前输入一个空格;c. 当上一行有开始时,下一行代码在上一行代码的首字母基础上缩进一次Tab键;d. 当上一行没有开始时,下一行代码与上一行代码的首字母纵向对齐*第二章1.什么是变量内存地址的别名就是变量2.为什么需要变量内存地址不好记忆所以我们要为内存地址命别名这个别名是变量3.变量的作用是什么方便存、取内存地址中存
4、储的数据4.声明变量的语法数据类型 变量名:例如:int money;5.初始化变量的语法变量名 = 变量值;例如:money = 1000;6.声明并初始化的语法数据类型 变量名 = 变量值;例如:int money = 1000;7.变量命名规则1."只能"由数字、字母、_ 、$ 组成2."不能"以数字开头3."不能"使用java的关键字4."建议"采用骆驼命名法命名变量名例:userName5."建议"采用有意义的单词,且一般是名词8.变量的特点1.先声明再赋值 后使用2.局部或全局变量名
5、不能重复定义9.赋值运算符符号: =语法: 变量名 = 表达式含义: 表示把表达式的运算结果赋值给变量名10.算术运算符符号:+ 、 - 、 * 、 / 、%注意:1. + 有两重含义:算术加连接符2. / 的除数不能为0,为0将报运行时错误3. % 表示除以一个数,取余数(当被余数比余数小时,结果是被余数本身)例如:int m = 5;int n = 2;int c = m % n;System.out.println(c);/1int m = 2;int n = 5;int c = m % n;System.out.println(c);/211.键盘输入的三个步骤1.导入包import
6、java.util.Scanner;Orimport java.util.*;2.创建键盘扫描器对象Scanner input = new Scanner(System.in);3.接收键盘输入int 变量名 = input.nextInt();/接收键盘输入的整数String 变量名 = input.next();/接收键盘输入的字符串double 变量名 = input.nextDouble();/接收键盘输入的小数注意:java并没有为我们定义nextChar()方法,所以以下代码是错误的:char 变量名 = input.nextChar();如果想从键盘接收一个字符,并且使用char
7、类型变量接收,可以采用如下写法:char 变量名 = input.next().charAt(0);12.常见数据类型的存储范围/java的8种基本数据类型booleantrue 或 false/布尔类型byte-128 127/字节类型char0 65535/字符类型short-32768 32767/短整型int-2147483648 2147483647/整型long比int大了很多/长整型float比long大了很多/单精度浮点型double比float大很多很多/双精度浮点型*String可以存储无穷大的内容13.自动类型转换把存储范围较低的值赋给存储范围较大的变量,就发生自动类型转
8、换规则1:表达式的最终运算结果的数据类型和表达式中最高数据类型一致数据类型转换是兼容类型的转换规则2:发生自动类型转换的条件是:1.两种数据类型兼容2.目标数据类型大于源类型总之: 自动类型转换是数据类型提升的转换,是无损失的转换14.强制类型转换把存储范围较高的值赋给存储范围较低的变量,就需要强制类型转换语法: 低数据类型 变量名 = (低数据类型)高数据类型的表达式;总之:强制类型转换是数据类型降低的转换,是有损失的转换15.为什么需要boolean数据类型当需要表示真、假、是、否、对、错等的时候,就需要使用boolean数据类型16.boolean数据类型的值只有以下两个值:truefa
9、lse17.关系运算符(比较运算符)>、>=、<、<=、=、!=特点:关系运算符的结果一定是boolean类型18.运算符的优先级() > 算术运算符 > 关系运算符 > 逻辑运算符 > =*第三章1.if选择结构的语法if (布尔表达式) /代码块注意: 1."布尔表达式"的运算结果一定是boolean类型2.当"代码块"只有一行代码时,语法上可以省略,但还是建议写上2.逻辑运算符&&逻辑与表示并且的意思二元运算符|逻辑或表示或者的意思二元运算符!逻辑非表示取反一元运算符注意:1.&
10、;&的运算规则:"真 && 真" 结果为真,否则都为假2.|的运算规则:"假 | 假" 结果为假,否则都为真3.!的运算规则:原来是真,取反变假;原来是假,取反变真4.参与逻辑运算的表达式,一定为布尔表达式3.到目前为止,我们学过的运算符的优先级到目前为止,我们学过的运算符有:赋值运算符算术运算符比较运算符逻辑运算符它们的优先级为:! > () > 算术运算符 > 比较运算符 > && > | > =4.流程图表示符号圆角矩形表示程序的开始或结束直角矩形表示计算步骤或声明平行四边
11、形表示程序的输入或输出菱形表示程序的条件判断带箭头的直线表示程序的流程线带圆圈的箭头的直线表示程序的连接符5.在MyEclipse中加注释的快捷键Ctrl + ?添加或取消单行注释Ctrl + Shift + ?添加多行注释Ctro + Shift + 取消多行注释6.比较两个字符串的内容是否相等equals()注意:equals()的返回结果一定是布尔类型例如:String s1 = "张三"String s2 = "李四"boolean flag = s1.equals(s2);7.java中产生随机数的办法java为我们提供了一个数学类,即java
12、.lang.Math类Math类有一个静态方法,即random()它能产生一个大于等于0.0;并且小于1.0的随机小数double r = Math.random();r >= 0.0 && r < 1.0如果我们要产生一个0到9的随机整数:Math.random()->0.0,1.0)Math.random() * 10->0.0,10.0)(int)(Math.random() * 10)->0,9如果我们要产生一个1000到9999的随机整数:(int)(Math.random() * 9000) + 1000一般的,要产生一个M到N的随机整
13、数(M和N都是正整数,且M < N);(int)(Math.random() * (N - M + 1) + M8.在MyEclipse中,自动对齐代码格式的快捷键Ctrl + Shift + F注意:在输入法下,由于快捷键冲突,可能按Ctrl + Shift + F没有反应9.equals()和=比较相等的区别=是比较内存地址是否一样equals()是比较内存地址里存储的内容是否一样注意:1=比较相等时,则equals()比较也一定相等2equals()比较相等时,而=比较不一定相等3=可以比较任意数据类型而equals()不能比较charintdoubleboolean等基本数据类型
14、,只能比较引用数据类型*第四章java-version看版本1.为什么需要switch选择结构当判断条件是等值的情况下虽然可以使用多重if选择结构但其语法较为啰嗦这时可以语法更为简洁的switch选择结构(在"条件为区间"时,应该优先选择使用多重if选择结构)2.switch选择结构的语法switch(分值变量) case 常量1:/语句break;case 常量2:/语句break;.case 常量1:/语句break;default:/default的语句break;3.switch结构的特点1.分值变量的数据类型只能是:byte、char、short、int 在JDK
15、1.7以上版本中,还可以是String类型2.case后面的常量值不能重复3.case和default都可以省略,只是都省略后没有意义4.多个case之间或case与default之间的顺序可以交换 如果每个case或default的语句后都有break,则交换后对执行结果没有任何影响; 如果case或default的语句后没有break,则交换后对执行结果有影响5.整个switch结构执行结束的条件是遇到break或结束的""4.为什么需要异常处理用户的键盘输入是不确定的为了防止程序因为用户的错误输入而导致崩溃就需要异常处理;现阶段的异常处理主要是用Scanner对象的判
16、断方法5.Scanner对象的常见异常处理判断方法有哪些boolean hasNextInt()判断用户输入的是否是整数boolean hasNextDouble()判断用户输入的是否是double类型*第五章1.为什么需要循环当需要解决"重复操作"的问题时,就需要使用循环2.while循环的语法1.声明循环变量while (2.检查循环条件) 3.执行循环条件 4.更新循环变量3.while循环的执行特点先检查循环条件是否为true为true则执行循环操作为false不执行即"先判断,后执行"注意:当循环条件第一次就为false时,while循环将一次
17、都不会执行4.什么叫"程序调试"发现和定位错误的技术,称之为"程序调试"注:几乎所有的IDE(可视化开发工具)都具有"程序调试"的功能我们目前学习的是MyEclipse,它也具有"程序调试"的功能5.MyEclipse中常见的调试快捷键F5"单步进入"执行每行代码内部的代码F6"单步跳过"仅仅执行该行代码,不执行该行代码内部的代码F8"执行完毕"不再调试,而直接执行代码6.调试的步骤1.估计出错代码的大体位置,添加断点2.运行代码,启动调试3.F5或F6单
18、步执行,4.观察变量5.发现问题6.停止运行,修改代码7.解决问题7.为什么需要do-while循环在某些情况下,需要先执行一次操作,才能确定是否继续执行操作就需要do-while循环8.do-while循环的语法1.声明循环变量do 2.执行循环操作3.更新循环变量 while (4.检查循环条件);9.do-while循环的执行特点先执行一次循环操作,再判断循环条件如果条件为true,则继续执行否则执行结束即"先执行,后判断"注意:当循环条件第一次就为false时,do-while循环将执行一次操作 总之,do-while循环至少执行一次循环操作。*第六章1.为什么要使
19、用for循环结构第五章学习了while循环和do-while循环能够解决循环的所有的问题了为什么还要学习for循环呢?这是因为在循环次数固定的时候while和do-while循环的语法都较复杂而for循环的语法较简洁所以我们要学习for循环2.for循环的语法for (1.声明循环变量;2.检查循环条件;4.更新循环变量) 3.执行循环操作3.for循环的执行顺序1-2-3-42-3-42-3-4.注意:1.当循环条件一开始就为false时,for循环将一次都不执行 这个特点和while循环一样2."1.声明循环变量"、"2.检查循环条件"、"
20、4.更新循环变量" 都可以省略,但是两个分号;不能省略,否则将报语法错误3."1.声明循环变量"永远只执行一次4.break的用法1.break可以用在switch结构中 表示跳出switch结构,而执行switch结构之后的代码继续执行循环之后的代码2.break也可以用在循环结构(包括while、do-while、for)中 表示跳出循环结构,而执行循环结构之后的代码3.break用在循环中时,break之后,循环之内的代码没有机会执行4.循环结构中使用break时,有的书上往往也称之为"循环打断"5.continue的用法1.contin
21、ue只能用在循环结构中 表示结束当次循环,而执行下一次循环2. 在循环中,continue之后,循环之内的代码没有机会执行3.循环结构中使用continue时,有的书上往往也称之为"循环加速",6.while循环、do-while循环和for循环的区别1.语法不同:while (条件) 操作do 操作 while (条件);for (表达式1; 表达式2; 表达式3) 操作2.执行顺序不同:while循环和for循环都是:先检查条件,后执行操作do-while循环:先执行一次操作,后检查条件3.当初始条件不满足时:while循环和for循环一次都不执行do-while循环只
22、执行一次循环体4.使用场景不同:当循环次数不确定时,优先考虑使用while循环当循环次数确定时,优先考虑使用for循环当需要先执行一次操作,再判断条件时,优先考虑使用do-while循环注意:在任何情况下,三种循环均可以相互替换,仅仅可能带来不同的编码复杂度*第七章 总结NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL*第八章1.为什么需要数组前面章节我们学习了变量,知道它能存储一个值,为什么还要学习数组呢?因为当需要存储多个相同数据类型的值的时候,从前面章节学习的变量来存储,显得极其麻烦所以:当需要存储相同数据类型的一组数据时,
23、就需要使用数组2.什么是数组数组也是一个变量,它能够存储"一组" "相同数据类型"的数值3.数组的基本要素标识符:即数组变量,我们可以通过标识符来访问数组数组元素:数组中存储的数据,它们的数据类型是相同的元素下标:即数组中每个数据的索引,第一个元素的索引是0,第二个是1,第N个是N-1元素类型:数组中每个数据都是有数据类型的,它的类型和数组的类型是"一致的"比如:int数组中的元素的数据类型就是int类型4.使用数组的好处1.多个相同数据类型的变量可以定义成数组,提高开发效率2.方便通过元素索引查找元素,提高了执行效率5.使用数组的四
24、个步骤1.声明数组2.为数组分配空间3.为数组赋值4.处理数组里存储的数据6.声明数组的语法数据类型 数组名;Or数据类型 数组名;*推荐例如:存储一个班学生姓名: String names;存储一个班学生年龄: int args;7.为数组分配空间的语法数组名 = new 数据类型大小;一般情况下,我们往往把声明数组和分配空间写成一行代码,即数据类型 数组名 = new 数据类型大小;所以以下两种写法是等价的:第一种:数据类型 数组名;数组名 = new 数据类型大小;第二种:数据类型 数组名 = new 数据类型大小;例如:int args;args = new int30;或者:Stri
25、ng names = new String30;8.为数组赋值的语法1.静态赋值,即边声明边赋值:数据类型 数组名 = 值1, 值2,., 值N;或者:数据类型 数组名 = new 数据类型 值1, 值2,., 值N;例如:int scores = 88, 79, 65;或者int scores = new int 88, 79, 65;注意:边声明边赋值的代码"只能"一行代码完成,"不能"分成两行代码2.动态赋值,即通过循环来赋值:Scanner input = new Scanner(System.in);for (int i = 0; i <
26、 数组长度; i+) 数组名i = input.nextInt();9.如何处理数组数据1.求数组长度可以通过length属性,即:数组名.length 来取得例如:int socres = 88, 79, 65;int len = scores.length;其中:length表示数组的长度属性,由java预定义2.访问数组元素可以通过索引(下标),即: 数组名索引例如:int socres = 88, 79, 65;int score = score2;其中:2表示数组中第三个元素的索引 索引值的聚会范围:0 数组名.length - 110.当数组越界时报告的异常数组的索引取值范围是:
27、0 数组名.langth那么当索引值不在这个范围时,程序就会抛出异常,该异常的名称是:java.lang.ArrayIndexOutOfBoundsException中文的描述是:数据越界11.数组的特点1.内存地址连续2.存储的数据的数据类型相同3.数组长度一旦定义,就再也不能改变_比较字符串的大小:SpareToIgnoreCase(String2);如果String1 > String2->输出 1如果String1 < String2->输出 -1如果String1 = String2->输出 0例:Z8d6新歌插入的位置就是新歌曲数组元素中按照字典顺序和
28、一个大于新歌的位置,所以在if条件中,可以利用compareToIgnoreCase()方法 找到该插入位置if (pareToIgnoreCase(music) > 0) index = i;break;*第九章1.键盘扫描器对象的next()和nextLine()方法的区别next()nextLint()共同点:都能接收键盘输入的字符串不同点:只能接收"空格之前"的内容能接收"回车换行之前"的内容*第十章 总结NULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULLNULL*
29、第十一章1.OO的意思面向对象在面向对象里,有以下专业词汇:OOA面向对象分析OOD面向对象设计OOP面向对象编程大家在北大青鸟期间学习的重点OOT面向对象测试2.万物皆对象,怎么描述对象呢通过对象的静态特征来描述对象这个静态特征,我们称之为属性每个对象的属性值往往是不一样的静态特征 = 属性例如:描述一个人时,往往从以下静态特征进行描述:姓名性别年龄地址通过对象的动态特征也可以描述对象这个动态特征,我们称之为方法每个对象执行方法后的结果往往也不一样动态特征 = 方法例如:描述一个人时,往往从以下动态特征进行描述:吃穿住用行3.什么是对象对象是用来描述客观事物的一个实体,由一组属性和方法组成用
30、我们的话来描述,就是客观存在的能够被描述的事物就是所谓的对象4.什么是封装对象的属性和方法通常被封装在一起,共同体现事物的特征二者相辅相成,不可分割用我们的话描述,就是把对象的属性和方法有机的组合在一起就是所谓的封装5.如何得到类从一组具有相似特征的对象,抽象出类类是对象的类型例如:Scanner input;和int等类型不一样,类的对象是拥有方法的例如:input.nextInt();6.什么是类类是具有相同属性(属性值不一样)和共同行为(方法)的一组对象的集合7.类和对象的关系是什么类是对象的抽象,而对象是类的一个具体实例我们是从若干相似对象抽象出类的,同时,又可以从类创建若干对象8.关
31、键字class的作用java程序中定义一个类,可以通过class关键字来实现这个类就是一个自定义的数据类型,它不同于java预定义的数据类型如:int, double, String等9.创建类的语法public class 类名 /定义属性数据类型 属性名1;数据类型 属性名2;.数据类型 属性名n;/定义方法方法1方法2.方法n例如:public class HelloWorld public static void main(String args) System.out.println("Hello World");就只有方法,而没有定义属性public class
32、 Test String name;int score;public void show() System.out.println(name + "考了:" + score + "分");就定义了两个属性(分别是name和score),和一个方法(方法名是show()10.类的属性和方法的别名在有的书上,往往也把类的属性称为:成员变量把类的方法称为:成员方法注意:成员变量和我们之前学过的局部变量不一样成员变量有默认值,而局部变量没有默认值数据类型默认值-booleanfalsebyte0char0或u0000short0int0long0Lfloat0.
33、0fdouble0.0Stringnull任性引用类型null11.使用类的步骤1.创建对象语法:类名 对象名 = new 类名();例如:Scanner input = new Scanner(System.in);School center = new School();2.引用对象的成员(包括属性和方法),使用操作符.语法:引用成员变量(属性):对象名.属性名引用成员的方法:对象名.方法名();例如:int score = input.nextInt();center.schoolName = "北大青鸟成都智谷中心"center.showCenter();12.面向
34、对象的优点1.与人类的思维习惯一致,便于理解2.封装隐藏了信息,提高了程序的可维护性和安全性3.提高了程序的可重用性*第十二章1.方法的组成部分1.返回值类型2.方法名3.方法体2.定义方法的语法public 返回值类型 方法名() 方法体3.方法的返回值描述方法的返回值分为两类情况:第一类:有返回值的在方法体中用:return 表达式;注意:表达式的数据类型应该和方法的返回值类型一致第二类:没有返回值的在方法体中不能出现return 表达式;注意:在没有返回值类型的方法中,也可以使用return但是return后面不能跟任何表达式或值这里的return仅仅表示方法执行完毕了在该return的
35、后面,不能再有任何代码4.方法调用的描述1.调用本类方法,不需要创建对象,而直接调用方法注意:1.以上说法适合于非静态方法(S1阶段)2.调用其它类的方法,必须先创建对象 然后用"对象名.方法名()"的方式调用注意:1.不管是调用本类的方法,还是调用其它类的方法 只有方法有返回值时 才能写在打印语句里,或者赋值给一个变量 方法没有返回值时 不能写在打印语句,或者赋值给一个变量 2.如果方法的返回类型不为void 在任何情况下,只能返回一个值3.方法之间不能相互嵌套定义4.不能在方法外部书写逻辑代码5.成员变量和局部变量的区别1.作用域不同:局部变量的作用域仅限于定义它的方法
36、或代码块成员变量的作用域在整个类的内部都是可见的2.初始值不同:java会给成员变量赋予初始值java不会给局部变量赋予初始值注意:1.在同一个方法中,不允许有同名局部变量 在不同的方法中,允许有同名局部变量2.在同一个类中,允许局部变量名和成员变量名相同 这时,局部变量具有比成员变量更高的优先级6.java的注释1.单行注释语法: /注释的内容2.多行注释语法: /* 注释的内容 */3.文档注释语法: /* 注释的内容 */注意:1.在添加文档注释时,可以使用以下标记:author描述作者version描述版本return描述方法的返回值2.生成注释文档的命令: javadoc 源文件名使
37、用场合:当注释的内容是给代码编写者看时:1.单行注释2.多行注释当注释的内容是给代码调用者看时:1.文档注释*第十三章1.当引用值为null的对象调用其属性或方法时报告的异常java.lang.NullPointerException*第十四章1.定义有参方法的语法访问修饰符 返回值类型 方法名(数据类型 参数1, 数据类型 参数2, . , 数据类型 参数n) /方法体2.调用有参方法的语法1.调用本类的有参方法:方法名(实参1,实参2, . ,实参n)2.调用其它类的有参方法:a.创建对象b.调用方法对象名.方法名(实参1,实参2, . ,实参n);注意:调用有参方法时:必须要保证实参的个
38、数、顺序、类型和形参完全一致3.为什么需要包存放相同名称的类时,需要使用包4.使用包的好处1.允许类组成较小的单元,易于找到和使用相应的java文件2.更好的保护类、属性、方法3.防止命令冲突5.包到底是什么一个包就是一个文件夹因此:一个包下可以有另外的包一个包下可以有多个子包一个包只能有一个父包6.定义包的语法package 包名1.包名2.包名n;注意:定义包的代码必须是java文件的第一行非注释代码7.包的命名规则1.强烈建议包名由全小写字母组成2.包名不能包含以下字符: 、/、*、?、:、<、>、|3.一般以域名倒置的方式命包名例如:百度的域名为: 定义它下面的test部门
39、的包,应该为:package com.baidu.test;8.导入包的语法import 包名.类名:或者:import 包名.*;例如:import java.util.Scanner;或者:import java.util.*;注意:1."导入包的代码"必须写在"定义包的代码"之后,"定义类的代码"之前.例如:package com.accp.app;/定义包的代码import java.util.Scanner;public class Test /定义类的代码2.只有在当前包中使用其它包中的类时,才需要导入包*第十五章1.为什
40、么需要字符串当需要存储文本数据时,就需要字符串2.字符串的创建方式1.不需要new关键字,直接创建例如: String s = "Hello World"2.需要new关键字,通过new创建例如: String s = new String("Hello World");3.字符串所在包字符串在java.lang包中定义java.lang是一个很特殊的包,java虚拟机在编译java源程序时会自动导入java.lang包,所以我们的java程序导入或不导入java.lang包,都是正确的4.字符串的常见方法1.返回字符串长度:语法:int length(
41、)例如:String s = "Hello World"int len = s.length();System.out.println(len);/11-2.比较两个字符串的内容是否相等:语法:boolean equals(Object obj)例如:String s1 = "Hello"String s2 = "World"boolean flag = s1.equals(s2);System.out.println(flag);/false注意:equals()方法不能用于基本数据类型,只能用于比较引用数据类型-3.忽略大小写比较
42、两个字符串的内容是否相等:语法:boolean equalsIgnoreCase(String str)例如:String s1 = "ABC"String s2 = "abc"boolean flag = s1.equalsIgnoreCase(s2);System.out.println(flag);/true-4.把字符串的所有大写字母转小写字母:语法:String toLowerCase()例如:String s = "ABc"String r = s.toLowerCase();System.out.println(r);/
43、"abc"-5.把字符串的所有小写字母转大写字母:语法:String toUpperCase()例如:String s = "abC"String r = s.toUpperCase();System.out.println(r);/"ABC"-6.连接两个字符串:1. +符号例如:String s = "你好,"String name = "张三!"Strign r = s + name;System.out.println(r);/"你好,张三!"2.concat()方法
44、语法:String concat(String str)例如:String s = "你好,"String name = "张三!"String r = s.concat(name);System.out.println(r);/"你好,张三!"注意:根据习惯,连接字符串,更多的时候,我们都使用+连接符- 7.查找字符或字符串在目标字符串中第一次出现的索引值:语法:int indexOf(int ch)或者int indexOf(String ch)例如:String s = "我爱你中国,我爱你家乡,我爱你小芳"
45、/char ch = '你'String ch = "你"int index = s.indexOf(ch);System.out.println(index);/2注意:当查找不到时,将返回 -1 -8.查找字符或字符串在目标字符串中最后一次出现的索引值语法:int lastIndexOf(int ch)或者int lastIndexOf(String ch)例如:String s = "我爱你中国,我爱你家乡,我爱你小芳"/char ch = '你'String ch = "你"int index = s.lastIndexOf(ch);System.out.println(index);/14注意:当查找不到时,将返回 -1 -9.提取子字符串:1.提取字符串的后半段:语法:String substring(index beginIndex)例如:String s = "我爱你中国,我爱你家乡,我爱你小芳"String str = s.substring(12);System.out.println(str);/"我爱你小芳"2.提取字符串中的一部分:语法:String substring(int beginIndex, int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二手房交易代理协议2024年下载
- 儿童教育空间定制化设计服务协议
- 2024年度教育机构招生协作协议
- 2024年设备采购协议书模板
- 安全门禁采购合作协议2024年样式
- 2024年期房屋建筑协议模板
- 2024年度重型拖车租赁服务协议
- 深化教师教育改革推动教育强国建设
- 房产交易2024协议封面设计
- 强化义务教育社会协同与治理参与策略
- GB/T 42455.2-2024智慧城市建筑及居住区第2部分:智慧社区评价
- 二次回路接线图中常见的文字符号
- 五十年的同学会配乐诗朗诵.
- 中国石油天然气股份有限公司股权处置实施细则
- 高中化学趣味知识竞赛(课堂PPT)
- 三管塔筏板计算
- 柴油购销合同
- MD380总体技术方案重点讲义
- 天车道轨施工方案
- 传染病转诊单
- 手术室各级护士岗位任职资格及职责
评论
0/150
提交评论