【发布时间】:2018-11-14 04:23:49
【问题描述】:
如果这是一个之前已经回答过的基本问题,我很抱歉(我尝试寻找但没有找到任何东西)
我正在尝试编写以下 Java 方法:
String winningCard(String trick, char trump) {
StringBuilder sb = new StringBuilder();
char suit;
char rank;
for(int i = 1; i < trick.length(); i+=2) {
if(trick.charAt(i) == trump) {
suit = trick.charAt(i);
rank = trick.charAt(i-1);
sb.append(rank + suit); //issue here, returns a weird number
break;
}
}
String result = sb.toString();
return result;
}
当使用这些参数“8s7hQd”调用时,例如“h”,它应该返回“7h”。
如果我将 StringBuilder 更改为仅附加西装或等级,它就可以了,但如果我按照上面的方式放置它,它会返回“159”,我认为这与 unicode 编码有关.
如果有好心人能告诉我我缺少什么,我将不胜感激。
提前致谢
【问题讨论】:
-
你试过
sb.append(rank); sb.append(suit);而不是一行sb.append(rank + suit);吗? -
哇,成功了!谢谢你,deHaar,你解决了我的问题。
标签: java unicode append stringbuilder bluej