关于java问题-编译中错误说第一行需要标示符是什么意思

问题描述

编译中错误说第一行需要标示符是什么意思

package dataStructure.Linear.*;
import dataStructure.LinearList.Node; //导入指定包中的类或接口
import dataStructure.LinearList.SeqStack; //导入指定包中的类或接口
import dataStructure.LinearList.LinkedStack; //导入指定包中的类或接口
public class Expression
{
public static String toPostfix(String expstr) //返回expstr的后缀表达式
{
SeqStackstack=new SeqStack(expstr.length());// 创建运算符栈,顺序栈
String postfix=""; // 记载后缀表达式
int i=0;
while(i
{
char ch=expstr.charAt(i);
switch(ch)
{
case'+': //遇到+、-运算符,与栈顶元素比较
case'_':while(!stack.isEmpty()&&!stack.get().equals("("))
postfix+=stack.pop();
stack.push(ch+""); //当前运算符入栈
i++;break;
case'*': //遇到*、/运算符
case'/':while(!stack.isEmpty()&&(stack.get().equals("*")||stack.get().equals("/")))
postfix+=stack.pop();
stack.push(ch+""); //遇到左括号入栈
i++;break;
case'(':stack.push(ch+"");
i++;break;
case')':String out= stack.pop(); //遇到右括号,出栈,若栈空则返回null
while(out!=null&&!out.equals("(")) //判断出栈字符是否为左括号
{
postfix+=out;
out=stack.pop();
}
i++;break;
default:while(i'0'&&ch<='9') //遇到数字时,加入到后缀表达式
{
postfix+=ch;
i++;
if(i<expstr.length())
ch=expstr.charAt(i);
}
postfix+=""; // 添加空格作为数值之间的分隔符
}
}
while(!stack.isEmpty())
postfix+=stack.pop();
return postfix;

}
public static int value(String postfix)                         //计算后缀表达式的值

{
LinkedStackstack=new LinkedStack(); //创建操作数栈,链式栈
int i=0,result=0;
while(i
{
char ch=postfix.charAt(i);
if(ch>='0'&&ch<='9') //遇到数字字符
{
result=0;
while(ch!=' ') //字符串化为数值
{
result=result*10+Integer.parseInt(ch+"");
i++;
ch=postfix.charAt(i);
}
i++;
stack.push(new Integer(result)); //操作数入栈
}
else
{ int y=stack.pop().intValue(); //出栈两个操作数
int x=stack.pop().intValue();
switch(ch) // 根据运算符分别计算
{
case'+':result=x+y;break;
case'-':result=x-y;break;
case'*':result=x*y;break;
case'/':result=x/y;break; //整除,除数为0时将抛出异常
}
stack.push(new Integer(result)); //运算结果入栈
i++;
}
}
return stack.pop().intValue(); //返回运算结果
}
public static void main(String args[])
{
String expstr="121+10*(53-49+20)/((35-25)*2+10)+11";
String postfix=toPostfix(expstr);
System.out.println("expstr="+expstr);
System.out.println("postfix="+postfix);
System.out.println("value="+value(postfix));
}

}

时间: 2024-08-30 03:30:50

关于java问题-编译中错误说第一行需要标示符是什么意思的相关文章

如何定义一个类 编译时,使得第一行报错,第二行正确

问题描述 如何定义一个类Aint main(){ A a; //第一行 A *b=new A(); //第二行}如何定义一个类 编译时,使得第一行报错,第二行正确 问题补充:enet_java 写道 解决方案 [quote java]#include "stdio.h"class test{public:static test* getinstance(){return(new test());}int puthello(){puts("hello world");

mfc-MFC中CEDIT取得第一行作为标题,怎么实现?

问题描述 MFC中CEDIT取得第一行作为标题,怎么实现? 就像word一样,添加到cfiledialog的文件名中,用cedit的第一行作为标题,怎么实现呢? 解决方案 void CApp2Dlg::OnButton1() { // TODO: Add your control notification handler code here char buffer[201]; int n = m_edit1.GetLine(0, buffer, 100); *(buffer + n) = '';

Excel中完美冻结第一行、第一列的技巧

第一步:在Excel中,单击选中"B2"单击格,执行"窗口"→"拆分"命令(如图1),接下来便会出现图2所示的效果,如果没有出现图2所示效果则说明窗口拆分未成功. 第二步:单击选中最左上角的"A1"单元格,执行"窗口"→"冻结窗格"命令(如图3). 这时就完美的实现了冻结第一行.第一列的效果了(如图4).对于一些数据较多的表格,需要固定表头或者第一列,冻结后查看就方便多了.你也遇到了秀秀

java去除字符串中的空格、回车、换行符、制表符的小例子_java

复制代码 代码如下: import java.util.regex.Matcher;import java.util.regex.Pattern;   /** * @author lei * 2011-9-2 */public class StringUtils {     public static String replaceBlank(String str) {        String dest = "";        if (str!=null) {           

java删除字符串中的空格、回车、换行符、制表符程序

java换行符 那是因为默认的情况下,界面上的换行时用的"n",这是LINUX和UNIX的换行符.在windows下换行符是"rn". 所以再将String对象写入到文件时,换行符应该把n写完整成rn  代码如下 复制代码 import java.util.regex.Matcher; import java.util.regex.Pattern; /**  * @author lei  * 2011-9-2  */ public class StringUtils

c#-如何选中DGV中的第一行 不是rows[0]的那一行 而是他的上面一行

问题描述 如何选中DGV中的第一行 不是rows[0]的那一行 而是他的上面一行 我将CSV数据导入了dgv,那么在DGV中显示的第一行(不能被选中的那一行 点击后可以使下面一列排序的那一行),我要怎么选中它,我需要把数据放到一个arraylist中,我需要将列名加放进去,但是我选择放入rows[0]cells[i]的话 他会选到我里面的数据,选不到我想要的列名,求大神解惑 红色框是想要选择的列名 解决方案 你说的这个不是第一行,而是表头 CellClick里面写 string s = data

界面-java中错误提示需要class、interface或enum怎么解决

问题描述 java中错误提示需要class.interface或enum怎么解决 package CarSale.CarUI; import java.awt.*; import java.awt.event.*; import java.sql.*; import javax.swing.*; class CarUI extends Frame { public static void main(String [] args) throws SQLException{ { String sql

Java HotSpot VM中的JIT编译

原文地址译者:郭蕾 校对:丁一 本文是Java HotSpot VM and just-in-time(JIT) compilation系列的第一篇. Java HotSpot虚拟机是Oracle收购Sun时获得的,JVM和开源的OpenJDK都是以此虚拟机为基础发展的.如同其它虚拟机,HotSpot虚拟机为字节码提供了一个运行时环境.实际上,它主要会做这三件事情: 执行方法所请求的指令和运算. 定位.加载和验证新的类型(即类加载). 管理应用内存. 最后两点都是各自领域的大话题,所以这篇文章中

图片-Eclipse编译Java文件出现空指针错误,求大神指教如何改正

问题描述 Eclipse编译Java文件出现空指针错误,求大神指教如何改正 另外出现错误的代码 主函数 public static void main(String[] args) { Login login = new Login(RELOAD); login.setVisible(true); } public Login() { super(); initialize(); } public Login(boolean reload) { super(); initialize(); ne