字符串处理及基础类库
更新时间:2024-03-10 19:32:01 阅读量: 综合文库 文档下载
实验六 字符串处理及基础类库
实验学时:2 实验类型:验证性 一、实验目的
1.理解并掌握String类、StringBuffer类、StringTokenizer类等,特别注意掌握字符串与变量之间的转换。
2.了解java提供的常用类包,主要有系统类、包装类、数学类、日历类、随机类等,充分利用java资源,使编程更加快捷有效。。
3.掌握Java Application命令行参数的使用。 二、实验要求
1.理解并掌握String类、StringBuffer类、StringTokenizer类等,特别注意掌握字符串与变量之间的转换。
2.了解常用类包有何用途,实验用到哪些常用类? 三、实验步骤 (一)字符串操作练习
1. String类的常见方法及与其他数据类型的转换练习。 public class StringTest{ public static void main(String [] args) { String s=\ System.out.println(s); System.out.println(\ System.out.println(\ System.out.println(\ String alphabet=\ System.out.println(alphabet); System.out.println(\ System.out.println(\ System.out.println(\ String sbis=\
}
System.out.println(sbis);
String sbislc=sbis.toLowerCase(); System.out.println(sbislc);
String sbisup=sbis.toUpperCase(); System.out.println(sbisup); String first=\String last=\
System.out.println(first+last); System.out.println(first+\
String str=\System.out.println(str); int i=str.indexOf('s');
System.out.println(\int j=str.indexOf('s',i+1);
System.out.println(\int k=str.indexOf('s',j+1);
System.out.println(\ k=str.lastIndexOf('s');
System.out.println(\System.out.println(str.substring(k)); String inventor=\System.out.println(inventor);
System.out.println(inventor.replace('B','C')); System.out.println(inventor); int n=44;
System.out.println(\String strn=String.valueOf(n); System.out.println(\ String today=\
String todaysDayString=today.substring(4,6);
int todaysDayInt=Integer.parseInt(todaysDayString); int nextWeeksDayInt=todaysDayInt+7;
String nextWeek=today.substring(0,4)+nextWeeksDayInt+today.substring(6); System.out.println(\
System.out.println(\
System.out.println(\System.out.println(\}
2
2.StringBuffer类练习 //StringBufferDemo.java import java.applet.Applet; import java.awt.Graphics;
public class StringBufferDemo extends Applet { public void paint(Graphics g) {
String str=\这是一个字符串——This is a test string\ g.drawString(\正常字符串:\
g.drawString(\翻转字符串:\ }
public String reverse(String s) { int len=s.length();
StringBuffer buffer=new StringBuffer(len); for (int i=len-1; i>=0; i--) buffer.append(s.charAt(i)); return buffer.toString(); } }
编译以上文件,并编写同名页面文件StringBufferDemo.html,内容如下:
在浏览器打开StringBufferDemo.html文件,观察运行结果。
3
(二)基础类库练习
1.日期和时间相关
(1)自定义一个类Time,实现显示当前日期和时间的功能
import java.util.Calendar; class Time { private Calendar t; private int y, m, d, hh, mm, ss;
4
}
Time (){ t=Calendar.getInstance(); y=t.get(t.YEAR); m=t.get(t.MONTH)+1; d=t.get(t.DATE); hh=t.get(t.HOUR_OF_DAY); mm=t.get(t.MINUTE); ss=t.get(t.SECOND); }
public String getDate() { return y+\年\月\日\}
public String getTime() { String s=hh+\时\分\秒\ return s; }
public static void main(String args[]){ Time t=new Time(); System.out.println(\当前日期:\ System.out.println(\当前时间:\}
(2)import java.util.*;
class HelloWorld { public static void main(String args[]){ Date date1=new Date(); String temp=date1.toString(); temp=temp.substring(11,temp.indexOf('C')); System.out.println(temp);
5
double sum=0.0; for(int i=0;i<=10000000;i++){ sum+=i; } System.out.println(\ Date date2=new Date(); temp=date2.toString(); temp=temp.substring(11,temp.indexOf('C')); System.out.println(\现在时间是:\ System.out.println(\ System.out.println(\ System.out.println(\ System.out.println(\
年:\ System.out.println(\月:\ System.out.println(\月:\ System.out.println(\日:\ System.out.println(\小时数:\ System.out.println(\分钟数:\ System.out.println(\秒数:\ } }
2.Vector类
import java.util.*;
public class MyVectorextendsVector{ public MyVector(){ super(1, 1); // 指定 capacity 和 capacityIncrement 取值 } public void addInt(int i){
6
}
addElement(new Integer(i)); } public void addFloat(float f){ addElement(new Float(f)); } public void addString(String s){ addElement(s); } public void addCharArray(char a[]){ addElement(a); } public void printVector(){ Object o; int length = size(); // 同capacity相比较 System.out.println(\ for (int i = 0; i < length; i++){ o = elementAt(i); if (o instanceof char[]){ //System.out.println(o); 不好 System.out.println(String.copyValueOf((char[]) o)); } else System.out.println(o.toString()); } } public static void main (String args[]){ MyVector v = new MyVector(); int digit = 5; float real = 3.14f; char letters[] = {'a', 'b', 'c', 'd'}; String s = new String (\ v.addInt(digit); v.addFloat(real); v.addString(s); v.addCharArray(letters); v.printVector(); }
7
3.系统常用类包的使用。
该程序对所有常用包和一些方法进行了测试;主要理解字符串与变量之间的转换。
import java.io.*; import java.math.*; import java.util.*;
class CommonClassesTest
{ public static void main(String args[]) throws Exception {//System系统类
System.out.println(\系统类-------\ char c; int cc;
System.out.println(\请输入一个字符\ cc=c=(char)System.in.read();
System.out.println(\您输入的字符是:\
System.out.println(\您输入的值是:\
System.out.println(\版本是:\System.out.println(\是:\
//lang语言类,创建数据类型对象
Integer I1=new Integer(100); Float F1=new Float(3.14159); double d1=Math.E;
Double D1=new Double(d1); //数据类型对象转换成数值变量
System.out.println(\数据类型对象转换成数值变量----\ int i1=I1.intValue(); float f1=F1.floatValue(); d1=D1.doubleValue();
System.out.println(\
8
System.out.println(\ System.out.println(\
//数据对象转换成数值字符串对象
System.out.println(\数据对象转换成数值字符串对象----\ String sI1=I1.toString(); String sF1=F1.toString(); String sD1=D1.toString();
System.out.println(\ System.out.println(\ System.out.println(\ //字符串的常用方法
System.out.println(\字符串的常用方法-----------\ System.out.println(\
System.out.println(\ System.out.println(\
//应用数据对象的toString()将数值或变量直接转换成数值字符串对象 System.out.println(\用toString()将数值或变量直接转换成数值字符串对象------\
int a=1234;
sI1=Integer.toString(a);
sF1=Float.toString((float)Math.PI);
sD1=Double.toString(Math.asin(0.5)*180/Math.PI);
System.out.println(\ System.out.println(\ System.out.println(\
//应用字符串对象的valueOf()将数值或变量直接转换成数值字符串对象
System.out.println(\用valueOf()将数值或变量直接转换成数值字符串对象---\
a=4321;
sI1=String.valueOf(a);
sF1=String.valueOf((float)Math.E);
sD1=String.valueOf(Math.asin(0.5)*180/Math.PI);
System.out.println(\ System.out.println(\ System.out.println(\
//将字符串转成数据对象再转成数值变量
System.out.println(\将字符串转成数据对象再转成数值变量---\ I1=Integer.valueOf(sI1); //转成数据对象 i1=I1.intValue(); //再转成变量
f1=Float.valueOf(sF1).floatValue();//两步合起来
9
d1=Double.valueOf(sD1).doubleValue();
int i2=Integer.parseInt(\对整形数值串更简便
System.out.println(\转成变量i1=\ System.out.println(\转成变量f1=\ System.out.println(\转成变量d1=\ System.out.println(\直接转i2=\
//日历类与随机类
System.out.println(\日历与随机类----------\ Calendar now=Calendar.getInstance(); int year=now.get(Calendar.YEAR);
int month=now.get (Calendar.MONTH)+1; int date=now.get(Calendar.DATE);
System.out.println(\今天是\年\月\日\
int aaa;
int b1=0,b2=0,b3=0; for(int i=0;i<30;i++)
{aaa=new Random().nextInt(3)+1; //产生1-3的随机数 System.out.println(\
if (aaa==1) b1++; if (aaa==2) b2++; if (aaa==3) b3++; }
System.out.println(\的个数=\的个数=\的个数=\
} }
【思考问题】
10
① 将数据或变量转成字符串有那些方法? 数值转换为字符串
public static String valueOf(Object obj)//obj可以是任何类型的数值型变量。 ② 将数值型字符串转成数值变量有哪些步骤和方法。
1.字符串转换为数值 (1) 字符串转换为整数
public static int parseInt(String s, int radix)//s是需要转换的字符串,radix是转换后用什么进制表示,如10就是十进制,16就是十六进制。
(2) 字符串转换为浮点数
public static float parseFloat(String s)//s是需要转换的字符串 2.数值转换为字符串
public static String valueOf(Object obj)//obj可以是任何类型的数值型变量。
③ 注释掉main函数后面的throws Exception编译会发生什么错误?怎样处理使错误消失?
将上述注释的代码恢复即可。 ④ 修改程序完成下面的要求:
? 从日历对象中读取当前的时、分、秒。
? 产生0~±10间的随机数。
4.main方法参数的使用。
进一步了解数值型字符串转换成数值变量的必要性和应用。该题通过从命令行输入两个整形数,在程序中计算两个数之积。
package maintest;
public class MainParaDemo
{public static void main(String args[])
11
{ int w=Integer.valueOf(args[0]).intValue(); int h=Integer.valueOf(args[1]).intValue(); System.out.println(\两个数之积是:\ } }
【思考问题】如何在执行程序时输入所要求的参数?
? 用JDK。经工作路径转到程序包maintest所在文件夹:
输入命令java MainParaDemo 40 30 运行结果:两个数之积:1200 截图如下:
? 用Eclipse。工程配置要进行修改。在源文件编辑界面通过Run As→ Run
Configurations?进入图6-1所示界面。点击第二个选项卡(Arguments),在“program arguments”中输入所需参数,如图所示。注意参数间是一个空格。
12
?
?
13
?
?
14
(四)编程练习与设计
1. 设给定一组整型数组,求它们的平均值及最大值 代码为:
import java.util.Scanner;
public class Average { }
public static void main(String[] args) { }
// TODO Auto-generated method stub
Scanner keyboard = new Scanner(System.in); System.out.println(\输入数组的长度:\); int n=keyboard.nextInt(); int[] c = new int[n];
System.out.println(\输入数组的元素为:\); for(int i=0;i double avg; double sum=0; int maxofn = Integer.MIN_VALUE; for(int i=0;i avg = sum/n; System.out.println(\输出该数组的平均值:\+avg); System.out.println(\该数组的最大值为:\+maxofn); sum+=c[i]; if( c[i]>maxofn){ maxofn = c[i]; c[i] = keyboard.nextInt(); 15 2. 创建一个Vector 对象v,先通过键盘为args[]输入两个分量,然后赋值给对象v,并通过直接方式为其分量赋值。 实验代码为: import java.util.Vector; import java.util.Scanner; public class MyVector { public static void main(String[] args) { // TODO Auto-generated method stub Vector Scanner keyboard = new Scanner(System.in); System.out.print(\输入第一个分量:\); args[0]=keyboard.next(); System.out.print(\输入第二个分量:\); args[1]=keyboard.next(); v.addElement(args[0]); v.addElement(args[1]); v.addElement(\); v.addElement(\); System.out.println(\向量为:\+v); v.setElementAt(\,3); System.out.println(\向量为: \+v); System.out.println( \向量元素的个数为:\+v.size()); System.out.println(\孟千\); } } 16 3.编写一个java程序,完成以下功能: (1) 声明一个名为s的字符串,并使它的内容为”Call me Ishmael.”; (2) 打印整个字符串 (3) 使用length()方法打印字符串的长度 (4) 使用charAt()方法打印字符串的第一个字符 (5) 使用charAt()和length()方法打印字符串的最后一个字符 (6) 使用indexOf()方法和substring()方法打印字符串中的第一个单词 实验代码为 public class Ex4_3 { } public static void main(String[] args) { // TODO Auto-generated method stub String s = \; System.out.println(s); System.out.println(\字符串的长度为:\+s.length()); System.out.println(\字符串的第一个字符为:\+s.charAt(0)); System.out.println(\字符串的最后一个字符为:\+s.charAt(s.length()-1)); int n = s.indexOf(\); System.out.println(\字符串中的第一个单词为:\+s.substring(0, n)); System.out.println(\孟千\); } 17 4. 使用Math类编写一个完整的程序。 实验代码如下: public class Math { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //abs(arg):返回arg绝对值,arg可以是:int,long,float,double. double a = java.lang.Math.abs(-186.7); System.out.println(a); //ceil(double arg):返回>=arg的最小整数. double b = java.lang.Math.ceil(79.3); System.out.println(b); //floor(double arg):返回<=arg最大整数. double c = java.lang.Math.floor(30.9); System.out.println(c); //max(x,y):返回x和y中的最大值. double d = java.lang.Math.max(a,b); System.out.println(d); //min(x,y):返回x和y中的最小值. double e = java.lang.Math.min(b,c); System.out.println(e); //rint(double arg):返回最接近arg的整数值. 返回double double f = java.lang.Math.rint(50.6); System.out.println(f); //round(arg):返回最接近arg的整数值.arg为double时返回long,为float时 返回int 18 double g = java.lang.Math.round(20.18); System.out.println(g); //返回一个介于0与1之间的伪随机数.大多数情况下适应Random类产生随机数. double h = java.lang.Math.random(); System.out.println(h); //sqrt(double arg):计算参数的平方根.返回类型为double型 double i = java.lang.Math.sqrt(80); System.out.println(i); //pow(double arg1,bouble arg2):计算arg1为底arg2为指数的幂返回类型为 double型 double j = java.lang.Math.pow(3,4); } System.out.println(j); } 四、思考问题 1.如何快速学习并使用各种类的API。 五:实验体会 通过本次上机实验,理解并掌握String类、StringBuffer类、StringTokenizer类等,特别注意掌握字符串与变量之间的转换。也明白数值型字符串转成数值变量 有哪些步骤和方法。另一方面了解java提供的常用类包,主要有系统类、包装类、 数学类、日历类、随机类等,充分利用java资源,使编程更加快捷有效。从而以更高效的完成编程,掌握Java Application命令行参数的使用,自己对编程有了新的认识,也更加熟练。 19 20
正在阅读:
字符串处理及基础类库03-10
2022-2022年初中数学贵州中考冲刺拔高试卷【84】含答案考点及解04-17
重庆市土地利用总体规划(2006~2020年) - 图文06-16
四年级数学下册期末应用题总复习14706-12
全贴合技术的工艺流程04-06
28《抽样管理和检测校准物品(样品)处置管理程序》04-06
第十三届“星河丹堤杯”少儿围棋锦标赛暨广东省“谁是棋王”(惠03-17
高考语文(冬季第三辑) 打不死的贝尔:荒野是我的盛宴素材04-06
2016高考总复习-跳出题海-生物高分攻略-专题一组成细胞的分子 wo04-06
NC6动态建模 - 权限管理操作手册02-29
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 字符串
- 处理
- 基础
- 富力城业主便民电话(最新版)
- 数据结构--民航订票系统论文
- 北师大版复习测试综合复习五年级下册语文期末试卷 - 图文
- 浅谈计算机病毒与防范
- SDL系列游戏在ARM上移植的实现 - 图文
- 立体构成中的形式美法则
- 8b104308+张博+快递末端物流配送的风险分析
- 德邦物流运营标准的核心竞争力
- 2007年长江航务管理局大事记
- 东师15年春《公共人力资源管理(高起专)》期末考核答案
- 广州市建设工程重特大生产事故应急预案
- 110kV变电站电缆截面及电缆层接地设计
- 安全生产检查计划
- 《草房子》阅读练习
- 授权签字人考试题
- 工程造价管理考试复习资料
- 2019-2020学年新疆教育版语文七年级下册第16课《合作与成功》wor
- 2019年初中学生期末考试教师评语集锦 - 图文
- 朝花夕拾测试题及答案
- 公路文化建设工作实施方案