教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

实验9 常用系统类(2)

来源:网络收集 时间:2026-09-07
导读: import java.io.*; public class ListWords { public static void main(String[] args) throws IOException { String line; char ch; boolean isWord=false; StringBuffer word=new StringBuffer(); System.out.pri

import java.io.*;

public class ListWords {

public static void main(String[] args) throws IOException { String line; char ch;

boolean isWord=false;

StringBuffer word=new StringBuffer(); System.out.println(\输入一行文本:\

BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); line=br.readLine();

for ( int i = 0; i < line.length(); i++ ) { ch = line.charAt(i);

if ( Character.isLetter(ch) ) { word.append(ch); isWord=true; } else {

if ( isWord ) {

word.append(\ isWord=false; } } }

String x[]=word.toString().split(\System.out.println(\共有\个单词\ for (int n=0;n

System.out.print(x[n]+ \ } }

【说明】一个单词的判断条件是已字母开头,后跟若干字母。也就是遇到非字母的单词即可断定为单词结束。为了便于处理,这里将所有单词拼接到一个串中,单词之间用逗号分隔。程序中引入了一个逻辑变量isWord来标记当前处理字符是否为单词的部分,是则标记为true,不是则标记为false。本例也演示了split方法的使用,可以很方便地将一个字符串按指定分隔符分离出子串并存放到数组中。 【编程技巧】

(1) 定义一个StringBuffer类对象拼接所有单词,单词之间用逗号分隔。

(2) 抓住单词的特点,是连续若干字母,所以遇到字母即可将其作为单词的组成部分插入StringBuffer中。 (3)

定义一个逻辑变量记录前面是否出现单词,如果出现,则逻辑变量为true,否则为false。在处理非字母字符时通过判断该逻辑变量确定是否应插入一个逗号到StringBuffer中。 (4)

利用循环扫描处理整个字符串,在处理完毕后再将StringBuffer中的所有内容转化为String类对象,利用Split方法按逗号分隔分离出单词存入数组中。

样例5: 利用向量记录实现学生管理,能支持学生对象的增加、删除操作,每个学生对象包括学号、姓名、性别。删除学生必须输入学生的学号。 可以设计一个操作菜单,包括“增加”、“删除”、“显示”、“退出”4个选项。 import java.io.*; import java.util.*; public class student { String name; long stno; String sex;

public student(String name,long stno,String sex) { this.name=name; this.stno=stno; this.sex=sex; }

public String toString() {

return \姓名:\学号:\性别=\ }

public static void main(String args[]) { Vector group=new Vector(); outer: while (true) {

String ch=input(\选择:1-- 增加, 2---删除, 3- 显示,4--退出\ int choice=Integer.parseInt(ch); switch (choice) {

case 1: group.add(inputStudent());break;

case 2: long stno=Long.parseLong(input(\请输入学号:\ for (int k=0;k

student x=(student)group.get(k); if ( x.stno==stno)

group.removeElement(x); }

break;

case 3: Iterator p=group.iterator(); while (p.hasNext())

System.out.println(\ break; case 4: break outer; } } }

/* 从键盘输入一个字符串 */

public static String input(String hint) { String x=null;

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

System.out.println(hint); try {

x=br.readLine();

}catch(IOException e) { } return x; }

/* 从键盘输入一个学生 */

public static student inputStudent(){

String name=input(\请输入姓名:\

long stno=Long.parseLong(input(\请输入学号:\ String sex=input(\请输入性别:\ return new student(name,stno,sex); } }

【说明】 为了简化程序,设计了两个方法:

String input(String hint) : 根据提示从键盘获取一个字符串;

student inputStudent() :从键盘获取学生相关信息构造学生对象。 【编程技巧】

(1) 在输入数据的处理中编写方法,简化设计。

(2) 利用向量存储学生对象,查找数据时,要从向量中读取数据进行比较,获取对象时要强制转换才能赋给代表学生的引用变量。

(3) 程序演示了对向量的两种遍历处理方法。

9.4 上机练习

² 基本题

1)设有一个由10个英文单词构成的字符串数组,要求: (1)统计以字母w开头的单词数;

(2)统计单词中含“or”字符串的单词数; (3)统计长度为3的单词数。

2)输入一个算术表达式,例如:45*2+23*(234-24),求出其中有多少整常数。 3)创建一个程序,输出今天的年、月、日。

提示:创建一个java.util.Date类的对象代表当前的系统日期,使用对象的getYear()方法、getMonth()方法、getDay()方法可获得对应的年月日。 4)编写一个程序,用于计算 x op y这样的表达式的值,表达式从命令行输入,其中op 为 + - * / % 几种运算符之一,x和y代表两个实数。 5) 将以下程序补充完整 import java.util.Random; public class Java_2 {

public static void main(String args[]){ Random random = new Random();

float x = random.nextFloat();//产生0.0与1.0之间的一个符点数 int n = Math.round(20*x); //构造20以内的一个整数 long f = 1 ; //保存阶乘的结果

int k = 1 ; //循环变量

//*********Found******** do {__________; k++;

//*********Found******** }__________

System.out.println(n+\ } }

6) 将以下程序补充完整

//Java_1.java,字符串类的startsWith()和endsWith()方法 import javax.swing.*; public class Java_1 {

public static void main( String args[] ){

String strings[] = { \ String output = \

//测试startsWith()方法

for ( int i = 0; i < strings.length; i++ ) if ( strings[ i ].startsWith( \

output += \开始于 \\\ output += \

//从字符串第2个字符开始

for ( int i = 0; i < stri …… 此处隐藏:2937字,全部文档内容请下载后查看。喜欢就下载吧 ……

实验9 常用系统类(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/445128.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)