- 浏览: 68991 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
hhhk:
总结的很好
java从控制台读入数据 -
hnzhoujunmei:
不错
java从控制台读入数据 -
EdwardWorld:
已受用,谢谢分享。
java判断一个数是否为质数的方法 -
yangdong:
不错,console我还是第一次听说。有点像 .net 了
java从控制台读入数据
import java.util.Stack;
public class StackTest {
private final String[] sym = { "Nand", "Nor", "Or", "And" };
private Stack opNumber = new Stack();
private Stack opSym = new Stack();
public void parseSource(String source) {
char sources[] = source.toCharArray();
for (int i = 0; i < sources.length; i++) {
if ('(' == sources[i]) {
} else if (')' == sources[i]) {
} else if (',' == sources[i]) {
} else {
int j = i;
for (; ((sources[j] >= 'A' && sources[j] <= 'Z') || (sources[j] >= 'a' && sources[j] <= 'z')); j++);
String value = source.substring(i,j);
Item item = new Item();
item.setValue(value);
boolean exist = false;
for(String sy : sym) {
if(sy.equals(value)) {
opSym.push(item);
exist = true;
break;
}
}
if(!exist) {
opNumber.push(item);
}
i = j;
}
}
}
private void calculate() {
StringBuilder sb = new StringBuilder();
while (opSym.size() > 0) {
Item item = (Item) opSym.pop();
Item first = (Item) opNumber.pop();
Item second = (Item) opNumber.pop();
if (sym[0].equals(item.getValue())) {
sb.append(second.getValue()).append(" Nand ").append(first.getValue());
} else if (sym[1].equals(item.getValue())) {
sb.append(second.getValue()).append(" Nor ").append(first.getValue());
} else if (sym[2].equals(item.getValue())) {
sb.append(second.getValue()).append(" Or ").append(first.getValue());
} else if (sym[3].equals(item.getValue())) {
sb.append(second.getValue()).append(" And ").append(first.getValue());
}
Item value = new Item();
value.setValue(sb.toString());
sb = new StringBuilder();
opNumber.push(value);
}
System.out.println(((Item) opNumber.pop()).getValue());
}
class Item {
String value;
int priority;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public int getPriority() {
return priority;
}
public void setPriority(int priority) {
this.priority = priority;
}
}
public static void main(String[] args) {
StackTest stackTest = new StackTest();
stackTest.parseSource("Nand(yu,Nor(B,C))");
stackTest.calculate();
}
}
http://download.csdn.net/detail/yjflinchong/3144840
http://www.cnblogs.com/kevintian/articles/1086994.html
http://code.google.com/p/morphia/wiki/QuickStart
http://code.google.com/docreader/#p=morphia&s=morphia&t=Datastore
package com.test;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.bson.types.ObjectId;
import com.google.code.morphia.Datastore;
import com.google.code.morphia.Morphia;
import com.google.code.morphia.query.Query;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import com.test.entity.MyEntity;
public class MorphiaFindData {
public static void main(String[] args) throws UnknownHostException, MongoException {
Mongo mongo = new Mongo("localhost", 27017);
Datastore ds = new Morphia().createDatastore(mongo,"myDB");
// 通过ObjectId来查询
// MyEntity entity = ds.get(MyEntity.class,new ObjectId("4edcd4f35c65f882738a5da8"));
// System.out.println(entity.getName());
// MyEntity enty = new MyEntity();
// enty.setId(new ObjectId("4edcd4f35c65f882738a5da8"));
// MyEntity g = ds.get(enty)
// System.out.println(g.getName());
// List<ObjectId> lists = new ArrayList<ObjectId>();
// lists.add(new ObjectId("4edcd4f35c65f882738a5da8"));
// lists.add(new ObjectId("4edcdd455c653ebc1027bdf6"));
// Query<MyEntity> querys = ds.get(MyEntity.class,(Iterable<ObjectId>)lists);
// List<MyEntity> result = querys.asList();
// for(MyEntity mEntity : result) {
// System.out.println("Name: " + mEntity.getName());
// }
ds.find(MyEntity.class).get();//得到查询集中的第一个实体
//从返回的结果集中在根据选择条件选择相应的结果
Query<MyEntity> queries = ds.find(MyEntity.class);
Iterator<MyEntity> iterator = queries.iterator();
//在使用queries.iterator()方法时Mophia才会真的去访问Mongodb获取数据
while(iterator.hasNext()) {
System.out.println("Name: " + iterator.next().getName());
}
}
}
发表评论
-
详解大端模式和小端模式
2012-06-27 15:56 990详解大端模式和小端 ... -
java内存分析工具(转2)
2012-02-28 15:00 1300前言的前言:本文是自2005年8月以来,首次在一个月之内 ... -
java内存分析工具(转)
2012-02-28 14:51 1315最近在测一个接口时 ... -
Zookeeper初览
2012-01-31 22:42 995最经在做项目时需要用到分布式锁服务,我在apach ... -
读写锁
2012-01-30 16:43 1045package com.game.distributed ... -
一道算法
2010-08-16 15:44 87当我有400个对象时,我还需要这400个对象的拷贝,但java ... -
中文的unicode编码的范围
2010-02-11 15:38 1861\u4E00-\u9FFF -
一个java算法的效率问题
2010-01-01 13:22 85我现在有一个3*3的格子,用list实现2维数组,没一个格子放 ... -
每个初学者都应该搞懂的几个问题?
2009-09-30 21:51 547对于这个系列里的问题 ... -
三元运算符的特性
2009-09-30 20:45 871今天工作的时候,想到的一个问题 今天工作的时候,帮同事 ... -
全面理解J2SE初始化顺序
2009-09-26 14:01 632class A{ public String co ... -
Java中堆和栈的区别
2009-07-28 22:25 651栈与堆都是Java用来在Ram ... -
理解i++和++i的机制
2009-07-28 17:32 816int i=0; j=i++; int i=0; j=++i ... -
开窗户小游戏
2009-05-07 23:18 1241package GUI; import java.awt.Bo ... -
简单日历
2009-05-06 14:09 988package GUI; import java.awt.Bo ... -
java从控制台读入数据
2009-04-22 23:10 54430 引言 从控制台中读取数据是一个比较常用的功能,在 JDK ... -
java判断一个数是否为质数的方法
2009-04-21 21:49 139621:因为质数是除去能除1和本身以外的没有因式的数,所以 ...
相关推荐
加减乘除和括号 的表达式,比如: ( 1 + 2 ) * 3 + 4,不能求解 : sum( 3, 4, 5 ) / 2 - 4 -sum( 5, 3, 1 ) 这样的, 于是自己在此基础上写了一个可以求解带方法调用表达式的工具类,组要是通过递归将方法调用,...
- 递归求解表达式,通过计算得出结果。 12. **斐波那契数列**: - 直接递归求解斐波那契数列的时间复杂度是指数级的。 13. **组合问题**: - 从8个苹果中选择不相邻的苹果,可以用组合数学解决。 14. **几何...
在数据结构课程设计中,"算术表达式求解"是一个经典的实践项目,它涉及到编译原理、数据结构和算法等多个计算机科学的核心领域。在这个项目中,通常会使用C语言来实现,因为C语言的效率高且易于理解,适合处理底层的...
本文主要探讨的是数据结构中的一个重要概念——栈(Stack),以及它在处理算术表达式求解中的应用,特别是如何将中序表达式转换为后序表达式(也称为逆波兰表示法)。 栈是一种具有“后进先出”(Last In, First ...
本篇将详细讲解如何使用C++来处理中缀表达式,并通过构建二叉树以及转换为后缀表达式的方式来求解表达式的结果。 首先,我们要理解什么是中缀表达式。中缀表达式是我们在日常生活中最常使用的表达式形式,例如 "2 +...
### 递归方程求解方法详解 #### 一、递推法 递推法是一种直接根据递归方程的定义来求解递归方程的方法。这种方法适用于那些可以直接通过迭代计算来找到规律的递归方程。 **例1:Hanoi塔问题** Hanoi塔问题是一个...
通过定义一系列递归函数来匹配和处理语法结构,可以实现表达式求解。 6. **表达式求值**:在构建了表达式树或后缀表达式后,就可以进行求值。对于二叉表达式树,可以通过遍历树的后序顺序来计算结果。对于后缀...
表达式求解是计算机科学中一个基础性问题,该问题的解决方案有多种,如递归下降解析、LR解析、算符优先算法等。在这里,我们将讨论基于算符优先算法的表达式求解方法,该方法使用顺序栈和运算符栈来实现实数内的加减...
- **构建流程**:首先,将中缀表达式转换为后缀表达式,然后根据后缀表达式的顺序逐个插入节点构建二叉表达式树。 - **代码示例**:在提供的部分代码中,函数 `createBTree` 负责创建二叉表达式树。它接收当前节点...
在计算机科学中,利用二叉树来表示和求解表达式是一种常见的方法。这种方法的核心是通过构建一个以运算符为节点、以操作数为叶子节点的二叉树结构,来实现表达式的解析和计算。 #### 构建表达式树的原则: 1. **...
* 递归下降解析:使用递归函数来解析表达式,然后进行计算。 * 迭代解析:使用迭代函数来解析表达式,然后进行计算。 四、数据结构在算术表达式求解中的应用 数据结构在算术表达式求解中扮演着重要的角色,常用的...
逆波兰表达式,又称后缀表达式,是一种用于...总结,逆波兰表达式的求解涉及到数据结构(栈)、算法(递归下降解析)以及编程语言的基本操作。理解并掌握这两种方法,有助于深入理解计算机科学中的计算原理和算法设计。
这种特性使得栈在处理具有顺序要求的问题时特别有效,比如处理括号匹配、递归调用和,当然,还包括解析四则算术表达式。 四则算术表达式通常包含数字、运算符(加、减、乘、除)以及可能的括号。求解这类表达式的一...
在这个项目中,我们聚焦于“算术表达式求解”,这是一个典型的数据结构应用,涉及到解析、存储和计算数学表达式。 首先,我们需要理解算术表达式的基本构成。算术表达式通常由数字、运算符(如加号"+"、减号"-"、...
实验中,学生需要编写程序来读取输入的表达式,创建表达式树,然后利用后序遍历表达式树来求解表达式的值。 三、实验提示 在实验中,学生需要将表达式分解为操作数和运算符,然后创建相应的二叉树。二叉树的递归...
在这个项目中,开发者可能使用了自定义的解析算法,例如递归下降解析,这种算法利用函数递归来对应于输入表达式的语法结构。在解析过程中,可能会遇到优先级和结合性问题,这些问题需要通过左结合或右结合规则以及...
Scratch 递归程序设计的教学探讨可以通过对递归算法原理的分析,提出抓住三个要点及构造递归表达式的学习方法,并结合 Scratch 编程风格,提出基于 Scratch 的递归算法教学引导思路,并分析探讨更有效的递归教学...
### 递归求解 Fibonacci 数列 #### 一、引言 数列是数学中一个重要的概念,它是由一系列按照特定顺序排列的数字组成的集合。数列的研究在数学的各个分支中都扮演着重要的角色,从代数到微积分,再到更高级的数学...
对于求解表达式,中序遍历是最合适的,因为它按照操作数-运算符-操作数的顺序访问节点,恰好符合中缀表达式的运算规则。 ```cpp int evaluateTree(ExpressionNode* node) { if (node->type == ExpressionNode::...
在数据结构课程设计中,算术表达式求解是一个重要的实践课题,它涉及到计算机科学的基础——算法和数据结构。这个项目旨在让学生理解如何通过编程实现对各种算术运算的支持,包括加法、减法、乘法、除法、乘方以及单...