「java字符串计算」java字符串计算表达式
本篇文章给大家谈谈java字符串计算,以及java字符串计算表达式对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、简单的JAVA字符串长度计算的实现
- 2、Java 字符串算术表达式求值
- 3、java中,如何将字符串里的数字进行运算!
- 4、java字符串长度怎么算
- 5、Java中的字符串转为计算表达式
- 6、java 怎么 字符串进行运算? 如:String str = "(((12 -2) * 5 ) /2) +30"; 最好要有代码。
简单的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 字符串算术表达式求值
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中,如何将字符串里的数字进行运算!
字符串里包含数字,首先要使用正则表达式将其中的数字提取出来,正则写法为: "^[0-9]*[1-9][0-9]*$"; 然后用Integer函数将其转换为数字类型,就可以进行您所需要的运算了。
Integer是其包装类,注意是一个类,用法例子:int num2=Integer.parseInt("12");
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
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字符串计算和java字符串计算表达式的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-24,除非注明,否则均为
原创文章,转载请注明出处。