您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > JAVA全套简明教程ch08-字符串和文本IO
YANGLIN@BNUITCJava程序设计第8章字符串和文本I/O学习目标掌握String类处理固定长度的字符串了解Character类处理单个字符掌握StringBuffer类处理可变长度字符串使用File类处理文件使用PrintWriter类向文件写数据使用Scanner类从文件读数据String类java.lang.String表示一个固定长度的字符序列。构造函数长度(length)获取字符(charAt)连接(concat)截取(substring)比较(equals,equalsIgnoreCase,compareTo,startWith,endWith,regionMatch)转换(toLowerCase,toUpperCase,trim,replace)查找(indexOf,lastIndexOf)字符串和数组间转换(getchars,toCharArray)字符串和数字间转换(valueOf)构造函数从字面值创建字符串StringnewString=newString(stringLiteral);例如:Stringmessage=newString(WelcometoJava);由于字符串经常使用,java提供了创建字符串的简写形式。StringnewString=stringLiteral;例如:Stringmessage=WelcometoJava;字符串是不可变的字符串对象创建之后,其内容是不可修改的。Strings;s=“java”;s=“HTML”;ss1:Stringvalue=Javass2:Stringvalue=HTMLs1:Stringvalue=Java规范字符串由于字符串是不可变的,为了提高效率和节省内存,如果两个字符串由于相同的字面值创建的,那么java虚拟机只创建一个字符串对象。这样的字符串称为规范字符串(canonicalstring)。可以使用字符串对象的intern方法返回标准化字符串。Strings=WelcometoJava;Strings1=newString(WelcometoJava);Strings2=s1.intern();Strings3=WelcometoJava;System.out.println(s1==s);//falseSystem.out.println(s2==s);//trueSystem.out.println(s3==s);//true:StringWelcometoJava:StringWelcometoJava比较字符串equals方法用于比较两个字符串是否包含相同的内容:两个字符串内容相同,返回true两个字符串内容不同,返回falseequalsIngnoeCase忽略大小写比较内容是否相同regionMatch比较部分内容是否相同startsWith判断是否以某个字符串开始endsWith判断是否以某个字符串结束compareTo方法用于比较两个字符串的大小,即第一个不同字符的差值。s1.compareTo(s2)的返回值:当两个字符串相同时,返回0当s1按字典排序在s2之前,返回小于0的值当s1按字典排序在s2之后,返回大于0的值Example:TestCompare.java调用length()方法可以获取字符串的长度。例如:message.length()返回15charAt(index)方法可以获取指定位置的字符。index的值必须在0到s.length()-1之间。例如:message.charAt(0)返回字符’W’字符串长度和获取单个字符WelcometoJavamessage.charAt(0)message.charAt(14)01234567891011121314连接字符串concat方法用于连接两个字符串。例如:Strings3=s1.concat(s2);使用加号(+)连接两个字符串。例如:Strings3=s1+s2;s1+s2+s3等价于s1.concat(s2).concat(s3)连接操作返回一个新的字符串。截取子串subString用于截取字符串的一部分,返回新字符串。publicStringsubstring(intbeginIndex,intendIndex)返回字符串的子串。子串从beginIndex开始,直到endIndex-1publicStringsubstring(intbeginIndex)返回字符串的子串。子串从beginIndex开始,直到字符串的结尾。WelcometoJava01234567891011121314message.substring(0,11)message.substring(11)字符串转换toLowerCase将字符串转换成小写形式toUpperCase将字符串转换成大写形式trim删除两端的空格replace字符替换Example:TestConvert.java查找字符或字符串indexOf返回字符串中字符或字符串匹配的位置,返回-1表示未找到。WelcometoJava.indexOf('W')returns0.WelcometoJava.indexOf('x')returns-1.WelcometoJava.indexOf('o',5)returns9.WelcometoJava.indexOf(come)returns3.WelcometoJava.indexOf(Java,5)returns11.WelcometoJava.indexOf(java,5)returns-1.WelcometoJava.lastIndexOf('a')returns14.字符数组和字符串间的转换toCharArray将字符串转换成字符数组Strings=“Java”;char[]charArray=s.toCharArray();将字符数组转换成字符串使用String的构造函数newString(newchar[]{‘J’,‘a’,‘v’,‘a’});使用valueOf方法String.valueOf(newchar[]{‘J’,‘a’,‘v’,‘a’});基本数据类型和字符串间的转换valueOf方法将基本数据类型转换为字符串。例如Strings1=String.valueOf(1.0);//“1.0”Strings2=String.valueOf(true);//“true”字符串转换为基本类型Double.parseDouble(str)Integer.parseInt(str)Boolean.parseBoolean(str)例判断回文回文是指顺读和倒读都一样的词语。例如“mom”,“dad”,”noon”都是回文。编写程序,判断一个字符串是否是回文。Example:CheckPalindrome.javaCharacter类Character类的作用将char类型的数据封装成对象包含处理字符的方法和常量方法isDigit方法判断一个字符是否是数字isLetter方法判断一个字符是否是字母isLetterOrDigit方法判断一个字符是否是字母或数字isLowerCase方法判断一个字符是否是小写isUpperCase方法判断一个字符是否是大写toLowerCase方法将一个字符转换成小写toUpperCase方法将一个字符转换成大写例统计字符串中字符的个数编写程序,统计字符串每个字符出现的次数。假定字母不区分大小写。解决方案1.使用String类的toLowerCase方法,将字符全部转换成小写字母。2.创建一个包含26个整数的数组,对每个字母出现的次数进行计数。Example:CountEachLetter.javaStringBufferStringBuffer用于处理可变内容的字符串。append方法在字符串的结尾追加数据insert方法在指定位置上插入数据reverse方法翻转字符串replace方法替换字符toString方法返回String对象capacity方法返回缓冲区的容量length方法返回缓冲区中字符的个数setLength方法设置缓冲区的长度charAt方法返回指定位置的字符setCharAt方法设置指定位置的字符例检查回文编写程序,检查回文,并忽略不是字母和数字的字符。解决方案1.创建一个新的StringBuffer,将字符串的字母和数字添加到StringBuffer中,返回过滤后的String对象。2.翻转过滤后的字符串,并与过滤后的字符串进行比较,如果内容相同则是回文。Example:PalindromeIgnoreNonAlphanumeric.java命令行参数可以从命令行向java程序传递参数。参数以空格分隔,如果参数本身包含空格,用双引号括起来。格式:java类名参数1参数2…例如javaTestMain“Firstnum”alpha53命令行参数将传递给main方法的args参数。args是一个字符串数组,可以通过数组下标访问每个参数。publicstaticvoidmain(String[]args)例使用命令行参数编写程序,执行整数的二元操作。程序接收3个参数:一个运算符和两个整数。例如:javaCalculator2+3输出2+3=5Example:Calculator.javajava.io.File类File对象表示文件系统的文件或路径。获取文件路径名的各组成部分测试底层文件的信息查询和更改文件创建、删除、重命名文件列出目录中的文件Example:TestFileClass.javajava.io.PrintWriter类PrintWriter用于以文本的形式输出对象、字符串和基本数据类型。PrintWriterpw=newPrintWriter(fileName);方法printprintlnprintf提供了对以下数据类型的输出charintfloatObjectbooleanchar[]longdoubleStringExample:WriteData.java使用java.util.Scanner读数据Scanner可以从输入流、文件、字符串读取以空白字符分隔的令牌(token),并转换成指定的基本数据类型和字符串。Example:ReadData.java
本文标题:JAVA全套简明教程ch08-字符串和文本IO
链接地址:https://www.777doc.com/doc-2878517 .html