「java字符串计算」java字符串计算hash

博主:adminadmin 2022-12-30 14:36:08 69

今天给各位分享java字符串计算的知识,其中也会对java字符串计算hash进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Java 字符串算术表达式求值

Java 字符串算术表达式求值:

import java.util.ArrayList;

import java.util.Stack;

/**

*

* @author yhh

*

*/

public class Calculate {

/**

* 将字符串转化成List

* @param str

* @return

*/

public ArrayListString getStringList(String str){

ArrayListString result = new ArrayListString();

String num = "";

for (int i = 0; i str.length(); i++) {

if(Character.isDigit(str.charAt(i))){

num = num + str.charAt(i);

}else{

if(num != ""){

result.add(num);

}

result.add(str.charAt(i) + "");

num = "";

}

}

if(num != ""){

result.add(num);

}

return result;

}

/**

* 将中缀表达式转化为后缀表达式

* @param inOrderList

* @return

*/

public ArrayListString getPostOrder(ArrayListString inOrderList){

ArrayListString result = new ArrayListString();

StackString stack = new StackString();

for (int i = 0; i inOrderList.size(); i++) {

if(Character.isDigit(inOrderList.get(i).charAt(0))){

result.add(inOrderList.get(i));

}else{

switch (inOrderList.get(i).charAt(0)) {

case '(':

stack.push(inOrderList.get(i));

break;

case ')':

while (!stack.peek().equals("(")) {

result.add(stack.pop());

}

stack.pop();

break;

default:

while (!stack.isEmpty() compare(stack.peek(), inOrderList.get(i))){

result.add(stack.pop());

}

stack.push(inOrderList.get(i));

break;

}

}

}

while(!stack.isEmpty()){

result.add(stack.pop());

}

return result;

}

/**

* 计算后缀表达式

* @param postOrder

* @return

*/

public Integer calculate(ArrayListString postOrder){

Stack stack = new Stack();

for (int i = 0; i postOrder.size(); i++) {

if(Character.isDigit(postOrder.get(i).charAt(0))){

stack.push(Integer.parseInt(postOrder.get(i)));

}else{

Integer back = (Integer)stack.pop();

Integer front = (Integer)stack.pop();

Integer res = 0;

switch (postOrder.get(i).charAt(0)) {

case '+':

res = front + back;

break;

case '-':

res = front - back;

break;

case '*':

res = front * back;

break;

case '/':

res = front / back;

break;

}

stack.push(res);

}

}

return (Integer)stack.pop();

}

/**

* 比较运算符等级

* @param peek

* @param cur

* @return

*/

public static boolean compare(String peek, String cur){

if("*".equals(peek) ("/".equals(cur) || "*".equals(cur) ||"+".equals(cur) ||"-".equals(cur))){

return true;

}else if("/".equals(peek) ("/".equals(cur) || "*".equals(cur) ||"+".equals(cur) ||"-".equals(cur))){

return true;

}else if("+".equals(peek) ("+".equals(cur) || "-".equals(cur))){

return true;

}else if("-".equals(peek) ("+".equals(cur) || "-".equals(cur))){

return true;

}

return false;

}

public static void main(String[] args) {

Calculate calculate = new Calculate();

String s = "12+(23*3-56+7)*(2+90)/2";

ArrayList result = calculate.getStringList(s); //String转换为List

result = calculate.getPostOrder(result); //中缀变后缀

int i = calculate.calculate(result); //计算

System.out.println(i);

}

}

简单的JAVA字符串长度计算的实现

简单实现代码如下:

public

class

stringlength

{

/**

*

获取字符串的长度,如果有中文,则每个中文字符计为2位

*

@param

value

指定的字符串

*

@return

字符串的长度

*/

public

static

int

length(string

value)

{

int

valuelength

=

0;

string

chinese

=

"[\u0391-\uffe5]";

/*

获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1

*/

for

(int

i

=

0;

i

value.length();

i++)

{

/*

获取一个字符

*/

string

temp

=

value.substring(i,

i

+

1);

/*

判断是否为中文字符

*/

if

(temp.matches(chinese))

{

/*

中文字符长度为2

*/

valuelength

+=

2;

}

else

{

/*

其他字符长度为1

*/

valuelength

+=

1;

}

}

return

valuelength;

}

public

static

void

main(string

args[]){

string

str

=

"hello你好";

system.out.println(stringlength.length(str));

}

}

java字符串长度怎么算

通过String自带的length()方法获取字符串长度。

String a="abcdefg";//定义一个字符串

int len = a.length();//通过length获取字符串长度,这里等于7

length()该方法返回此字符串的长度。长度是等于Unicode代码单元中的字符串的数目。

Java中的字符串转为计算表达式

这需要写很长一段代码。

1、判断表达式中有没有括号,如果有括号,转第二步。没有括号转第三步。

2、把括号内的内容提取出来,作为一个新的表达式。转第三步

3、判断表达式中有没有乘号和除号,有转第四步。没有转第六步。

4、把乘除号和乘除号前后的数字提取出来,得到新的表达式,转第五步。

5、提取数字和符号,判断表达式是乘号还是除号,然后计算结果。返回。

6、表达式没有乘除号,有加减号。转第七步。

7、提取包含加减的表达式中的符号和数据,计算结果,返回。

就是这个道理,这里只是描述了带括号和加减乘除的表达式,如果有更多的运算符,则根据运算符优先级处理。

java 怎么 字符串进行运算? 如:String str = "(((12 -2) * 5 ) /2) +30"; 最好要有代码。

如果你说的是用一个counter(String

str)的方法调用后得到str的计算结果话

2个数字加一个运算符,3个一组进行计算,得到一个数字,加另一个数字和运算符继续计算

需要注意string中连续的数字要整合成一个数字

加上括号的时候运算顺序要小心,特别注意括号前有计算数字,比如5+(2+5)

括号后面有乘除法运算,比如5+(2+5)/2

括号算完了要继续算后面的除法,之后用得到的数字加上前面的加号运算符和‘5’一起运算,算法思想就是这样了

要是有堆栈就建俩堆栈,一个运算符,一个数字

没括号的:数字压栈,符号压栈,数字压栈,判断下一个符号是否为乘除号,不是数字退栈,符号退栈,数字退栈,计算,得到结果,数字压栈,是乘除号,继续符号压栈,数字压栈,数字退栈,符号退栈,数字退栈,计算,数字压栈,数字退栈,符号退栈,数字退栈,计算,数字压栈

要是有括号:遇到括号后,正括号压栈,数字压栈,符号压栈,数字压栈,数字退栈,符号退栈,数字退栈,计算,得到结果……(与不加括号的情况一样)……直到遇到反括号,将正括号退栈,先看后面是否有乘除符号,若没有,看看符号栈是否为空,若不为空说明是括号前有运算的情况,将整个括号得到的数值当做数字压栈后按不带括号的处理,后面有乘除法,先乘除然后作为一个数字继续运算

用数组就建立2个数组,2个int型变量作为数组指针,一个存符号,一个存数字,方法与用堆栈相同

代码量一般,0分完全没有写代码的欲望啊,不过我的算法是正确的,望采纳

java中,如何将字符串里的数字进行运算!

字符串里包含数字,首先要使用正则表达式将其中的数字提取出来,正则写法为: "^[0-9]*[1-9][0-9]*$"; 然后用Integer函数将其转换为数字类型,就可以进行您所需要的运算了。

Integer是其包装类,注意是一个类,用法例子:int num2=Integer.parseInt("12");

Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

java字符串计算的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java字符串计算hash、java字符串计算的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-30,除非注明,否则均为首码项目网原创文章,转载请注明出处。