Java作业——权限综合实验 + 数组、字符串高级应用
来源:互联网 发布:vmware 设置网络 编辑:程序博客网 时间:2024/05/16 00:44
这道题。。。没什么好说的,就正则表达式的东西吧,直接贴题目和代码()
实验4 权限综合实验 + 数组、字符串高级应用
【实验类型】:综合型
【实验目的】:
1) 熟悉和掌握包的作用;
2) 熟悉和掌握如何将类编译输出到特定的包中,如何导入包;
3) 熟悉并掌握包对类权限修饰的影响;
4) 熟悉并掌握自动装箱、自动拆箱机制的含义和使用方式;
5) 熟悉并掌握字符串的高级使用方式;如正则表达式的使用等;[自行查找资料自学]
6) 属性并掌握数组的高级使用方式,如相关算法的调用等;
【实验内容】:
本次实验包含如下两个小实验:
1) 实验a:旨在验证包及其成员的访问权限;
有A、B、A1、C等4个类,其中A、B在包P1中,A1、C在包P2,每个类都有全部四种权限的成员,且A1是A的子类。现要求设计程序,验证包和权限修饰的影响。注意:4个类也需要配被合适的类权限修饰。验证时注意编译出错信息,合法调用要注意给出调用成功信息。
2) 实验b:旨在验证装箱拆箱、字符串和数组的高级应用
a) 输入若干java语句,识别出其中合法的标识符,如,输入:
“a+1.2f-4d-d5”,则合法的标识符有:”a”、”d5”
b) 输入10个数值型计算表达式(如1+2-3.0f+2.1),识别并计算,之后输出排序后的结果。如输入:
10+2+3.0
5-2.0f+3.0
1+2+3
输出结果为:
1+2+3=6 int型
5-2.0f+3.0=6.0 double型
10+2+3.0=15 double型
【实验提示】:
a)对实验a,一定要注意为每一类都必须隶属于一个包,否则将产生无名包问题,处理起来很麻烦,并且可能影响对结果的判别;
b)对实验b,要充分例子String类中字符串分隔功能,分隔的依据可以是正则表达式,这实际上可看作是识别的依据。
实验a不贴了,权限修饰符问题而已。
实验b:
import java.util.ArrayList;/** * 正则表达式 * @author KevinWu * */public class A { public static void main(String[] args) { // TODO Auto-generated method stub String testStr="$-a+1.2f-4d-d5"; //先分割字符串 String cutStr[]=testStr.split("[+-]"); for(int i=0;i<cutStr.length;i++){ String regex="[a-zA-Z$]{1}\\w*";//字母或$开头,后面的可以是数字或字母 if(cutStr[i].matches(regex)) System.out.println(cutStr[i]); } }}
import java.util.Scanner;/** * 识别计算 * @author KevinWu * */public class B { public static void main(String[] args) { String s1 = null; Scanner sc = new Scanner(System.in); while (sc.hasNext()) { s1 = sc.next(); int sumi = 0; double sumd = 0.0; // 先确定有没有f if (s1.split("f").length != 1 || s1.substring(s1.length() - 1).equals("f")) {// 结果是double // 分割出加数并相加 String p[] = s1.split("[+]"); for (int i = 0; i < p.length; i++) { if (p[i].split("[-]").length == 1) sumd += Double.valueOf(p[i]).doubleValue(); } // 再分割出被减数 String d[] = s1.split("[-]"); for (int i = 0; i < d.length; i++) { if (d[i].split("[+]").length == 1) sumd -= Double.valueOf(d[i]).doubleValue(); } System.out.println(s1 + "=" + sumd + " double型"); } else// 结果是int { String p[] = s1.split("[+]"); for (int i = 0; i < p.length; i++) { if (p[i].split("[-]").length == 1) sumi += Integer.valueOf(p[i]).intValue(); } // 再分割出被减数 String d[] = s1.split("[-]"); for (int i = 0; i < d.length; i++) { if (d[i].split("[+]").length == 1) sumi -= Integer.valueOf(d[i]).intValue(); } System.out.println(s1 + "=" + sumi + " int型"); } } }}
- Java作业——权限综合实验 + 数组、字符串高级应用
- C++作业5—数组选择、字符串
- Java——集合IO综合应用
- 南邮java实验一—综合图形界面程序设计
- 【实验报告】第6次作业——数组2
- js数组和字符串间的综合应用
- ActionForm综合应用到高级
- AHUOJ 高级语言程序设计实验-综合(七)
- 综合作业——APP(1)
- 综合作业——APP(2)
- 【面试】php面试题之五——PHP综合应用(高级部分)
- php面试题之五——PHP综合应用(高级部分)
- php面试题之七——PHP综合应用(高级部分)
- java正则替换字符串的高级应用
- C语言程序设计综合作业报告——作业管理系统
- Java.作业5 银行综合
- C++作业5—数组选择/求和/字符串
- 数组——Java SE(高级)
- java8 Lambda 表达式 学习
- C语言基础
- C++编程的第一个程序
- 2015最流行的Android组件、工具、框架大全
- opengl 消除棱角
- Java作业——权限综合实验 + 数组、字符串高级应用
- 线程安全的单例模式的实现
- django静态文件的访问
- 闲来无事,学学C语言
- 忽略大小写,比较字符串大小。
- 判断当前网络是否可用
- 辛星浅析text-indent属性
- Mecanim 系统练习2 +物理引擎PhysX
- Add Binary