java的switch表达式

1、switch支持的类型


以java8为准,switch支持10种类型

基本类型:byte char short int

对于包装类 :Byte,Short,Character,Integer

String

enum 

 

2、实际只支持int类型


Java实际只能支持int类型的switch语句,那其他的类型时如何支持的

a、基本类型byte char short

     原因:这些基本数字类型可自动向上转为int, 实际还是用的int。

b、基本类型包装类Byte,Short,Character,Integer

      原因:java的自动拆箱机制 可看这些对象自动转为基本类型

c、String 类型

     原因:实际switch比较的string.hashCode值,它是一个int类型

     如何实现的,网上例子很多。此处不表。 

d、enum类型

     原因 :实际比较的是enum的ordinal值(表示枚举值的顺序),它也是一个int类型

 

所以也可以说 switch语句只支持int类型

转载于:https://www.cnblogs.com/yangfei629/p/11443179.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中缀表达式转后缀表达式的方法如下: ```java import java.util.Stack; public class InfixToPostfix { public static String infixToPostfix(String infix) { Stack<Character> stack = new Stack<>(); StringBuilder postfix = new StringBuilder(); for (int i = 0; i < infix.length(); i++) { char c = infix.charAt(i); if (Character.isDigit(c)) { postfix.append(c); } else if (c == '(') { stack.push(c); } else if (c == ')') { while (!stack.isEmpty() && stack.peek() != '(') { postfix.append(stack.pop()); } stack.pop(); } else { while (!stack.isEmpty() && precedence(c) <= precedence(stack.peek())) { postfix.append(stack.pop()); } stack.push(c); } } while (!stack.isEmpty()) { postfix.append(stack.pop()); } return postfix.toString(); } private static int precedence(char operator) { switch (operator) { case '+': case '-': return 1; case '*': case '/': return 2; case '^': return 3; default: return -1; } } } ``` 其中,`infixToPostfix`方法接收一个中缀表达式字符串,返回一个后缀表达式字符串。该方法使用了栈来实现中缀表达式转后缀表达式的过程,具体实现过程如下: 1. 遍历中缀表达式字符串中的每个字符。 2. 如果当前字符是数字,则直接将其添加到后缀表达式字符串中。 3. 如果当前字符是左括号,则将其压入栈中。 4. 如果当前字符是右括号,则将栈中的元素弹出并添加到后缀表达式字符串中,直到遇到左括号为止。 5. 如果当前字符是运算符,则将栈中的元素弹出并添加到后缀表达式字符串中,直到栈为空或栈顶元素为左括号或栈顶运算符优先级低于当前运算符,然后将当前运算符压入栈中。 6. 遍历完中缀表达式字符串后,将栈中剩余的元素弹出并添加到后缀表达式字符串中。 7. 返回后缀表达式字符串。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值