今天在CSDN看到一个笔试题,觉得蛮有意思的,
题目如下:
从事先写好的Input.txt文件中读取数,
Input.txt 内容
A{13,2,1,20,30,50}
B{1,2,34,5,6}
C{2,3,12,23,14,11}
用户在键盘随意敲入...例如((A*B))+B-C,((C+B)*A)-B期中+,*,-,分别代表集合的并交差运算,控制台打印输出。
开始的时候打算用栈来计算的,
但想了想,不会搞,还是来个笨方法吧。
废话不多说,贴代码。
代码写的很烂,汗了!
-
- packagecom.lim.test;
- importjava.io.BufferedReader;
- importjava.io.FileInputStream;
- importjava.io.IOException;
- importjava.io.InputStreamReader;
- importjava.lang.reflect.InvocationTargetException;
- importjava.lang.reflect.Method;
- importjava.util.ArrayList;
- importjava.util.List;
-
-
-
publicclassEditorString{
-
privateTypea=null;
-
privateTypeb=null;
-
privateTypec=null;
-
privateTypet=null;
-
-
-
publicvoidreadFile(Stringpath){
-
BufferedReaderreader=null;
-
try{
-
reader=newBufferedReader(newInputStreamReader(
-
newFileInputStream(path)));
-
Stringstr=null;
-
while((str=reader.readLine())!=null){
-
if(str.substring(0,1).equals("A")){
-
a=newType(str);
-
}elseif(str.substring(0,1).equals("B")){
-
b=newType(str);
-
}elseif(str.substring(0,1).equals("C")){
-
c=newType(str);
-
}elseif(str.substring(0,1).equals("T")){
-
t=newType(str);
-
}else{
-
System.out.println("nosuchtype!");
-
return;
- }
- }
-
}catch(Exceptione){
- e.printStackTrace();
-
return;
- }
- }
-
-
-
publicvoiddisplayResult(Stringrule){
-
intstart=0;
-
intend=0;
-
while(rule.length()>2){
-
if(rule.contains("(")){
-
start=rule.lastIndexOf("(");
- end=start+4;
- rule=execute(start,end,rule);
-
}else{
- start=0;
- end=start+2;
- rule=executeNormal(start,end,rule);
- }
- }
- Listresult=t.getArray();
-
for(inti=0;i<result.size();i++)
-
System.out.println(result.get(i));
- }
-
-
-
privateStringexecute(intstart,intend,Stringrule){
-
intsize=rule.length();
- Typeobj=typeFactory(rule.substring(start+1,start+2));
- Stringope=rule.substring(start+2,start+3);
- Typearg=typeFactory(rule.substring(end-1,end));
-
try{
- t=execute(obj,arg,ope);
-
}catch(Exceptione){
- e.printStackTrace();
- }
-
returnrule.substring(0,start)+"T"+rule.substring(end+1,size);
- }
-
-
-
privateStringexecuteNormal(intstart,intend,Stringrule){
-
intsize=rule.length();
- Typeobj=typeFactory(rule.substring(start,start+1));
- Stringope=rule.substring(start+1,start+2);
- Typearg=typeFactory(rule.substring(end,end+1));
-
try{
- t=execute(obj,arg,ope);
-
}catch(Exceptione){
- e.printStackTrace();
- }
-
returnrule.substring(0,start)+"T"+rule.substring(end+1,size);
- }
-
-
-
privateTypeexecute(Typeobj,Typearg,Stringope)
- throwsSecurityException,NoSuchMethodException,
- IllegalArgumentException,IllegalAccessException,
- InvocationTargetException{
- Classc=obj.getClass();
-
Class[]args=newClass[1];
- args[0]=arg.getClass();
-
Methodm=null;
-
if(ope.equals("+")){
-
m=c.getMethod("bing",args);
-
}elseif(ope.equals("*")){
-
m=c.getMethod("jiao",args);
-
}elseif(ope.equals("-")){
-
m=c.getMethod("cha",args);
-
}else{
-
System.out.println("NoSuchMethod");
-
returnnull;
- }
-
return(Type)m.invoke(obj,newObject[]{arg});
- }
-
-
-
publicstaticStringreadInput(){
-
Stringret=null;
-
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
-
try{
- ret=br.readLine();
-
}catch(IOExceptione){
- e.printStackTrace();
-
returnnull;
- }
-
returnret;
- }
-
-
-
privateTypetypeFactory(Stringtype){
-
if(type.equals("A")){
-
returnnewType(a.getArray());
-
}elseif(type.equals("B")){
-
returnnewType(b.getArray());
-
}elseif(type.equals("C")){
-
returnnewType(c.getArray());
-
}elseif(type.equals("T")){
-
returnnewType(t.getArray());
-
}else{
-
returnnull;
- }
- }
-
-
-
classType{
-
privateListarray=newArrayList();
-
publicType(Stringsrt){
-
this.array=createList(srt);
- }
-
publicType(Listlist){
-
this.array.addAll(list);
- }
-
publicListgetArray(){
-
returnthis.array;
- }
-
-
-
publicTypebing(Typearg){
-
-
booleanadd=true;
-
- Listlist=arg.getArray();
-
-
for(inti=0;i<list.size();i++){
-
add=true;
-
-
for(intj=0;j<array.size();j++){
-
if(((Integer)list.get(i)).intValue()==((Integer)array
-
.get(j)).intValue()){
-
add=false;
- }
- }
-
if(add){
-
array.add(list.get(i));
- }
- }
-
-
returnnewType(array);
- }
-
-
-
publicTypejiao(Typearg){
-
-
booleanadd=false;
-
-
Listret=newArrayList();
-
- Listlist=arg.getArray();
-
-
for(inti=0;i<list.size();i++){
-
add=false;
-
-
for(intj=0;j<array.size();j++){
-
if(((Integer)list.get(i)).intValue()==((Integer)array
-
.get(j)).intValue()){
-
add=true;
- }
- }
-
if(add){
-
ret.add(list.get(i));
- }
- }
-
-
returnnewType(ret);
- }
-
-
-
publicTypecha(Typearg){
-
-
booleanadd=true;
-
- Listlist=arg.getArray();
-
-
for(inti=0;i<list.size();i++){
-
add=true;
-
-
for(intj=0;j<array.size();j++){
-
if(((Integer)list.get(i)).intValue()==((Integer)array
-
.get(j)).intValue()){
-
add=false;
-
- array.remove(j);
- }
- }
-
if(add){
-
array.add(list.get(i));
- }
- }
-
-
returnnewType(array);
- }
-
-
-
privateListcreateList(Stringstr){
-
-
Strings[]=str.replaceAll(str.substring(0,1),"").replace("{",
-
"").replace("}","").split(",");
-
Listlist=newArrayList();
-
for(inti=0;i<s.length;i++){
-
list.add(newInteger(s[i]));
- }
-
returnlist;
- }
- }
-
-
-
publicstaticvoidmain(Stringargs[]){
-
EditorStringes=newEditorString();
-
es.readFile("input.txt");
-
es.displayResult(readInput());
- }
- }
写完这个程序之后,该睡觉了,也没测试!
有问题了再说啊!
分享到:
相关推荐
名企面试笔试真题:TI 笔试题
这是完美世界的一道在线笔试题,当时时间不够,没能完全做完,想想真是遗憾,话不多说了直接上代码。
2023-04-08 项目笔记-...循环语句 3.1while循环 3.1.1while语句中的break和continue 3.2for循环 3.2.1语法 3.2.2break和continue中 3.2.3for语句的循环控制变量 3.2.4一些for循环的变种 3.2.5一道笔试题:- 2024-04-15
字符串相关笔试题 面试时常考,很不错的说
金山笔试题:涉及C++...及一些算法设计技术.....金山笔试题:涉及C++...及一些算法设计技术.....金山笔试题:涉及C++...及一些算法设计技术.....
1 将字符串转化为整数。2 将整数转化为字符串(考虑正负号的问题)。3 实现字符串拷贝函数strcpy(程序的完整性)。4 编程实现memcpy函数(以字节为单位的拷贝)。5 编程实现memmove函数。 等笔试题。
华为笔试题:JAVA.pdf
笔试题项目,字符串压缩,将aabb压缩为a2b2
2011 广州 面试笔试题:.doc
C++面试题笔试题C++ 数据结构算法笔试题资料合集: 50个C、C++面试题.pdf C++ 数据结构、算法笔试题.docx C++基础面试题.docx C++开发工程师面试题库.docx C++技能测试试卷一及答案.docx C++技能测试试卷二及答案....
这是百度的一道笔试题,给定一个字符串,查找其中连续的数字串。
java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 ...
有一组字符串,需要对它进行远程读取并按照规则进行逐行排序。 排序规则: 1. 字符规则(注意:区分大小写):j 2. 最后一列(1,2,3,4,5)需出现在排序后的第一列 3. 排序后输出的内容格式保持不变(即两两一组,...
腾讯在线笔试题-把字符串“I am from china.”反转成为“I am from china.”,以及把整个字符串逆序。
2015阿里巴巴笔试题:产品经理及运营篇.pdf
大连华信去年的笔试题,可以给各位即将工作的同学一些参考
C++笔试题 Sony笔试题 几道题目及自做答案 北电 普天C++笔试题 ...雅虎笔试题(字符串操作) C语言最长平台算法 华为3COM C语言题库 将两个无序数组合并为有序链表 上海聚力传媒技术有限公司官方VC笔试题解答
用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题
c笔试题c笔试题c笔试题c笔试题c笔试题c笔试题