今天在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());
- }
- }
写完这个程序之后,该睡觉了,也没测试!
有问题了再说啊!
分享到:
相关推荐
本篇文档描述的是一个在线笔试题的解答过程,题目要求是将输入的数字0到9转换成中文的“一二三四五六七八九”。从描述中我们可以了解到,这是一个程序设计相关的题目,要求编程者不仅要处理个位数的转换,还要处理两...
标题中的“Code_笔试题_字符串压缩_”指的是一个与编程相关的笔试题目,重点在于实现字符串的压缩功能。这类问题通常出现在技术面试或招聘过程的笔试试题中,旨在考察应聘者的编程能力和对数据结构的理解。 描述中...
这份"名企面试笔试真题:TI 笔试题.rar"文件,通过模拟数字应用工程师和MCU助理应用工程师的笔试题目,为求职者提供了一次了解和准备TI面试的机会。 1. **模拟电路与数字电路**: - 模拟电路涉及电阻、电容、电感...
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
1 将字符串转化为整数。2 将整数转化为字符串(考虑正负号的问题)。3 实现字符串拷贝函数strcpy(程序的完整性)。4 编程实现memcpy函数(以字节为单位的拷贝)。5 编程实现memmove函数。 等笔试题。
在完成代码实现后,通过 `print_log` 函数来输出处理后的结果,该函数用于在控制台上打印字符串。在 `main` 函数中,初始化字符串,调用反转函数 `rever`,最后输出反转后的字符串。 总结来说,字符串的反转和逆序...
C++面试题笔试题C++ 数据结构算法笔试题资料合集: 50个C、C++面试题.pdf C++ 数据结构、算法笔试题.docx C++基础面试题.docx C++开发工程师面试题库.docx C++技能测试试卷一及答案.docx C++技能测试试卷二及答案....
中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 v中兴笔试题 中兴笔试题 ...中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题
java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 ...
【百度笔试题】中的知识点主要涉及三个方面:编程题、算法题和系统设计。下面将分别对这三个方面进行详细的解析。 1. **编程题** 这道编程题要求编写一个函数`is_include(char *a, char *b)`,判断字符串`b`的所有...
有一组字符串,需要对它进行远程读取并按照规则进行逐行排序。 排序规则: 1. 字符规则(注意:区分大小写):j 2. 最后一列(1,2,3,4,5)需出现在排序后的第一列 3. 排序后输出的内容格式保持不变(即两两一组,...
### 查找连续的字符串-百度笔试题 #### 题目背景与要求 这是一道来自百度公司的编程笔试题目。题目要求实现一个程序,能够在一个给定的字符串中找到所有连续的数字序列,并最终输出最长的连续数字串。 #### 题目...
6. 字符串格式化:学习使用printf()和scanf()函数处理字符串输入和输出,以及如何使用sprintf()和sscanf()在内存中操作字符串。 7. 字符串操作:了解strtok()函数分割字符串,以及其它如strpbrk(), strspn(), ...
本资源是一份嵌入式软件工程师笔试题,涵盖了多个嵌入式软件开发中的知识点,包括字符串逆序、链表逆序、字节位计算、字节搜索、字符串转换等。 题目1:将一个字符串逆序 在这道题中,考生需要编写一个函数将一个...
答案提供了一个使用 C 语言实现的解决方案,该方案使用 gets 函数获取用户输入的字符串,然后使用指针 p 遍历字符串,直到遇到字符串结尾的 '\0',并统计字符的数量。 这道题目涉及到以下知识点: * 字符串的表示...
大连华信去年的笔试题,可以给各位即将工作的同学一些参考
### 各种C语言字符串函数-笔试面试必备 在C语言中,字符串处理是程序员必须掌握的基本技能之一,尤其在笔试和面试环节中,考察字符串函数的使用与自定义实现非常常见。以下是对几种常见的C语言字符串函数的深入解析...
- **QTextStream**:方便地读写文本文件,支持格式化输入输出。 - **QDir**:处理目录操作,如列出目录内容、创建新目录等。 - **QNetworkAccessManager**:处理网络请求,如下载、上传文件。 **5. 多线程** - **...
在这篇文章中,我们将讨论西门子Siemens笔试题及答案,涵盖串行通讯、模拟输入模块、数字量输出模块、逻辑运算和电机调速方法等多个方面的知识点。 串行通讯是一种将数据位按照顺序一个接一个地发送的通信方式。在...