我买了一个oppor9s多少钱买的白色,但我想要一个全黑的怎么弄成黑色的,谢谢

JAVA 日期加减运算
我的图书馆
JAVA 日期加减运算
import&java.text.SimpleDateF &&
import&java.util.C &&
import&java.util.D &&
&*&JAVA的日期加减方法 &
&*&@author&老紫竹(Java世纪网,java2000.net) &
public&class&Test&{ &&
&&public&static&void&main(String[]&args)&throws&Exception&{ &&
&&&&Calendar&calendar&=&Calendar.getInstance(); &&
&&&&calendar.setTime(new&Date()); &&
&&&&System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//&今天的日期 &&
&&&&calendar.set(Calendar.DAY_OF_MONTH,&calendar.get(Calendar.DAY_OF_MONTH)&+&1);//&让日期加1 &&
&&&&System.out.println(calendar.get(Calendar.DATE));//&加1之后的日期Top &&
&&&&Date&d&=&new&Date(); &&
&&&&SimpleDateFormat&df&=&new&SimpleDateFormat("yyyy-MM-dd"); &&
&&&&System.out.println("今天的日期:"&+&df.format(d)); &&
&&&&System.out.println("两天前的日期:"&+&df.format(new&Date(d.getTime()&-&2&*&24&*&60&*&60&*&1000))); &&
&&&&System.out.println("三天后的日期:"&+&df.format(new&Date(d.getTime()&+&3&*&24&*&60&*&60&*&1000))); &&
TA的最新馆藏声明:本网部分信息转载于其他网站,如稿件涉及版权等问题,请联系我们!>> 联系 qq:139-- -编写加减乘除运算方法
全部答案(共1个回答)
class MakeOperation
public static void main(String[] args){
Scanner input=new Scanner(System.in);
Count count=new Count();
System.out.print("请输入你要运算的第一个数:");
count.one=input.next();
System.out.print("请输入你要进行运算的运算符:");
count.fu=input.next();
System.out.print("请输入你要运算的第二个数:");
count.two=input.next();
if(count.fu.equals("+")){
count.outcome=Float.parseFloat(count.one)+Float.parseFloat(count.two)+"";
import 相关信息.util.S
class MakeOperation
public static void main(String[] args){
Scanner input=new Scanner(System.in);
Count count=new Count();
System.out.print("请输入你要运算的第一个数:");
count.one=input.next();
System.out.print("请输入你要进行运算的运算符:");
count.fu=input.next();
System.out.print("请输入你要运算的第二个数:");
count.two=input.next();
if(count.fu.equals("+")){
count.outcome=Float.parseFloat(count.one)+Float.parseFloat(count.two)+"";
// 将字符串解析为数字,注意下如果输入的不是数字程序会报错,缺少健壮性代码 }
System.out.println(count);
class Count{
public String toString(){
return one+fu+two+"="+
下面的代码修改了Count类里域的部分参数,增加了一个用于检查输入是否正确的类。
import java.util.S
class MakeOperation
public static void main(String[] args){
Scanner input=new Scanner(System.in);
Count count=new Count();
CheckOperation checkOpera=new CheckOperation();
System.out.print("请输入你要运算的第一个数:");
count.one=checkOpera.checkNum(input);
System.out.print("请输入你要进行运算的运算符:");
String[] operators={"+","-","*","/"};
count.fu=checkOpera.checkOperator(input,operators);
System.out.print("请输入你要运算的第二个数:");
count.two=checkOpera.checkNum(input);
if("+".equals(count.fu)){
count.outcome=count.one+count.
System.out.println(count);
class Count{
public String toString(){
return one+fu+two+"="+
class CheckOperation{
/*验证数字,输错了会提示用户重新输入*/
public float checkNum(Scanner input){
float num=0f;
num=Float.parseFloat(input.next());
} catch (NumberFormatException e) {
System.out.print("请输入正确的数字: ");
num=checkNum(input); //直至获取到正确的值
/*验证输入的符号是否正确*/
public String checkOperator(Scanner input,String[] operators){
String opera=
boolean judge=
opera=input.next();
for(String operator:operators){
if(operator.equals(opera)) judge=
if(judge) {
System.out.print("请输入正确的运算符: ");
opera=checkOperator(input,operators);
这是之前学习java swing这块的时候自己做的一个计算器
先产生大写字母A~Z的ACSII码范围的随机数,然后用Chr()得到大写字母。
“3~10个”到底是的多少个也可以随机一下。
你看是跟这段小程序的效果类...
把经典的算法都实现一遍,比如输出斐波拉契数列!
如果LZ是女性建议学java如果LZ是男性建议学C++C++面向对象的语言`java就是C++写的你学好C++学Java最多一星期你学好java在去学C++估计...
有去印度马图拉,barsana或vrindavan体验过洒红节的朋友吗?
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区java 实现加减乘除混合运算_Java_第七城市
java 实现加减乘除混合运算
初衷:解决小学一年级到四年级 基本加减乘除混合运算 基本思路: 表达式:100+3+2-200+(0/2)) 此类表达式我们称之为中缀表达式(运算符在数字的中间),如果我们稍加转换,转化为 100, 3, +, 2, +, 200, -, 10000, 5, /, 100, 2, /, +, + 转化后的表达式我们称之为后缀表达式(运算符在数字的后面),先不考虑该表达式是怎么来的,后面我们将详细介绍由中缀表达式转化为后缀表达式的实现过程;我们借助栈的数据结构(后进先出)来辅助我们解决这个问题,拿到转化后的结果 我们先创建一个空栈,从左往右开始运算,具体的运算逻辑为:
1.遇到数字则入栈2.遇到运算符号 则将栈顶两元素出栈 3.根据运算符号进行运算并将运算结果入栈 4.表达式结束 则将栈顶元素 取出 我们先靠手来计算一下结果为1955;现在我们用这个规律来进行分析, 第一步:数字100先入栈;
第二步:数字3入栈;
第三步: + 则将栈顶的数字3取出,此时栈顶为100 再将数字100取出,将相加后的结果103入栈;
第四步:数字2入栈;
第五步:+ 将栈顶数字2取出,继续取出栈顶数字103,将相加后的结果105入栈;
第六步:200入栈;
第七步:- 将栈顶数字200 取出,继续取出栈顶数字105 将相减后结果 -95 入栈; 第八步:数字10000入栈; 第九步:数字5入栈; 第十步:/ 将栈顶数字5 取出 继续取出栈顶数字10000,计算结果为2000,将2000入栈; 第十一步:数字100入栈; 第十二步:数字2入栈; 第十三步:/ 栈顶数字 2 和栈顶数字100 结果为50 入栈; 第十四步:+ 栈顶数字50 和栈顶数字2000计算结果为2050 入栈; 第十五步:+ 栈顶数字2050 和栈顶数字-95 计算结果为 1955 入栈; 第十六步:遍历结束,取出栈顶数字 1955
至此结果已经出来了,最终的计算结果为1955 现在来解释刚刚的疑问,后缀表达式该怎么来生成呢?? 好了现在我们来一点一点解开未解之谜 1.中缀表达式从左往右遍历,遇到数字则输出 2. 遇到左括号,入栈;遇到右括号 则从栈顶取 一直到取到左括号为止;遇到运算符,优先级不低于当前符号出栈并输出,直到取到比当前优先级低为止(+,-优先级相等,* / 优先级相等,+- 优先级低于 * /) 3.表达式遍历结束 栈内符号依次出栈 还是刚刚的表达式:100+3+2-200+(0/2)) 我们来按照这个步骤来分析一下 先创建一个空栈 第一步:数字100 输出; 第二步:+ 入栈; 第三步:数字3 输出; 第四步:+ 栈中没有优先级比+低 故栈中+出栈输出,此处+入栈;
第五步:数字2输出; 第六步:-栈中没有优先级比-低 故栈中+出栈输出,此处-入栈;
第七步:数字200 输出; 第八步:+栈中没有优先级比+低 故栈中 -出栈输出,此处+ 入栈;
第九步:符号(入栈;
第十步:数字10000输出; 第十一步:/ 栈中+ (优先级都没有/ 高 故 / 入栈;
第十二步:数字5 输出; 第十三步:+ 栈顶为/ 优先级高于+ 故+ 入栈 / 出栈输出;
第十四步:(入栈;
第十五步:数字 100 输出; 第十六步:/ 栈顶为( 此处/入栈;
第十七步:数字2 输出; 第十八步:),找到栈顶最近的(之间的符号 / 出栈输出,(出栈;
第十九步:),到最近的(之间的符号+ 出栈输出,(出栈;
第二十步:遍历结束,栈中依次出栈 +; 从上往下 背景标红部分为后缀表达式的输出顺序 下面为java代码实现 仅供参考 package com.fx.hfirst.import java.util.ArrayLimport java.util.HashMimport java.util.Limport java.util.Mimport java.util.Simport java.util.regex.Ppublic class Compute { /**
* @param args
*/ public static void main(String[] args) {
String data = "100+3+2-200+(0/2))";
String[] dataArray = getDataArray(data);
String[] postfixArray = getPostFix(dataArray);
computeWithPostFix(postfixArray); } private static String[] getDataArray(String data) {
if (data == null || "".equals(data.trim()) || data.trim().length() < 1) {
int dataLength = data.length();
String[] dataArray = new String[dataLength];// 根据字符串的长度创建数组
int top = 0;
String numStr = "";
for (int i = 0; i < dataL i++) {
char datai = data.charAt(i);
String num = String.valueOf(datai);
if (isNum(num)) {// 数字
if (i + 1 == dataLength) {
dataArray[top] = numS
if (!"".equals(numStr)) {// numStr 存在
dataArray[top] = numS// 数字存放到结果数组中
numStr = "";// 还原
top++;// 指针下移
dataArray[top] =
top++;// 指针下移
return removeNull(dataArray, top); } /**
* 获取后缀表达式
* @param data
*/ private static String[] getPostFix(String[] dataArray) {
if (dataArray == null || dataArray.length < 1) {
// 1.遍历数组 数字输出
// 2.若是符号 则判断和栈顶符号的优先级 是右括号 或者优先级低于栈顶符号(乘除高于加减)则栈顶元素依次出栈 输出 并将当前符号入栈
// 3.数组结束 栈内符号依次出栈
int dataLength = dataArray.
Stack dataStack = new Stack();
String[] dataBuffer = new String[dataLength];
int top = 0;
for (int i = 0; i < dataL i++) {
String datai = dataArray[i];
if (isNum(datai)) {// 数字
dataBuffer[top] =
top++;// 指针下移
} else if (isLeftBracket(datai)) {// 左括号
dataStack.push(datai);// 压栈
} else if (ComputeEnum.isCompute(datai)) {// 运算符
List lessThenMeList = getNotLessThenMeta(dataStack,
if (lessThenMeList != null && !lessThenMeList.isEmpty()) {
for (String lessThen : lessThenMeList) {// 小于当前运算符的符号输出
dataBuffer[top] = lessT
top++;// 指针下移
dataStack.push(datai);// 当前元素入栈
} else if (isRightBracket(datai)) {// 右括号 查找到最近左括号之间的所有符号 出栈
List betweenLeftBracketList = getBetweenLeftBracketMeta(dataStack);
if (betweenLeftBracketList != null
&& !betweenLeftBracketList.isEmpty()) {
for (String between : betweenLeftBracketList) {// 小于当前运算符的符号输出
dataBuffer[top] =
top++;// 指针下移
System.err.println("请注意中英文符号,检查出包含不支持的运算符!");
while (!dataStack.isEmpty()) {
dataBuffer[top] = dataStack.pop();
top++;// 指针下移
return removeNull(dataBuffer, top); } // 根据后缀表达式计算出结果 并打印 private static void computeWithPostFix(String[] postfixArray) {
if (postfixArray == null || postfixArray.length < 1) {
System.err.println("postfixArray is null !");
// 1.遇到数字则入栈
// 2.遇到运算符号 则将栈顶两元素出栈
// 3.将运算结果入栈
// 4.数组遍历结束 将栈顶元素 取出
Stack stack = new Stack();
for (String meta : postfixArray) {
if (isNum(meta)) {// 数字
stack.push(meta);
} else if (ComputeEnum.isCompute(meta)) {// 运算符号
double pop = Double.parseDouble(stack.pop());
double popNext = Double.parseDouble(stack.pop());
double result = compute(pop, popNext, meta);
stack.push(String.valueOf(result));
System.out.println("运算结果为:" + stack.pop()); } private static double compute(double pop, double popNext, String meta) {
double result = 0;
ComputeEnum compute = ComputeEnum.get(meta);
switch (compute) {
case plus:// 加
result = popNext +
case minus:// 减
result = popNext -
case multiply:// 乘
result = popNext *
case divide:// 除
System.err.println("被除数不能为0!");
result = popNext /
} private static List getBetweenLeftBracketMeta(
Stack dataStack) {
if (dataStack == null || dataStack.size() < 1) {
List list = new ArrayList(dataStack.size());
while (!dataStack.isEmpty()) {
String pop = dataStack.pop();// 栈顶元素出栈
if (isLeftBracket(pop)) {
list.add(pop);
* 取出所有不比自己优先级低的元素
* @param dataStack
* @param datai
*/ private static List getNotLessThenMeta(Stack dataStack,
String datai) {
if (dataStack == null || dataStack.size() < 1) {
ComputeEnum computei = ComputeEnum.get(datai);
List list = new ArrayList(dataStack.size());
while (!dataStack.isEmpty()) {
String pop = dataStack.peek();// 栈顶元素
ComputeEnum compute = ComputeEnum.get(pop);
if (compute == null) {
if (compute.level < computei.level) {
} else {// 优先级高于当前符号 出栈
dataStack.pop();
list.add(pop);
} private static String[] removeNull(String[] dataArray, int size) {
String[] dataResult = new String[size];
System.arraycopy(dataArray, 0, dataResult, 0, dataResult.length);
return dataR } private static boolean isNum(String num) {
String reg = "^//d+$";
pile(reg).matcher(num).find(); } /**
* @param num
*/ private static boolean isLeftBracket(String num) {
return "(".equals(num); } /**
* @param num
*/ private static boolean isRightBracket(String num) {
return ")".equals(num); }}enum ComputeEnum { plus("+", 0), // 加法 minus("-", 0), // 减法 multiply("*", 1), // 乘法 divide("/", 1), // 除法 ; private static Map dataMap = new HashMap(); static {
dataMap.put(plus.code, plus);
dataMap.put(minus.code, minus);
dataMap.put(multiply.code, multiply);
dataMap.put(divide.code, divide); } public S
private ComputeEnum(String code, int level) {
this.code =
this.level = } public static ComputeEnum get(String code) {
return dataMap.get(code); } public static boolean isCompute(String code) {
return dataMap.containsKey(code); }} 博客中若有错误,欢迎指正,我们一起来共同完善!
设置&input type=&file&&的
最新教程周点击榜
微信扫一扫

我要回帖

更多关于 oppor9s刷机 的文章

 

随机推荐