我创建了两个函数,它们对两个字符的数值进行求和,并在PHP中返回结果的字符。它是这样的:
function sumchars($c1, $c2) {
return chr(ord($c1) + ord($c2));
}
function subchars($c1, $c2) {
return chr(ord($c1) - ord($c2));
}
好吧,我也用Java创建了这两个函数,它们应该像PHP那样工作。
public static String sumchars(char c1, char c2) {
return (char)((int)c1 + int(c2));
}
public static String subchars(char c1, char c2) {
return (char)((int)c1 -+ int(c2));
}
似乎PHP函数chr()知道如何处理超出ASCII范围(大于255)的结果以及那些负数(小于0)的结果。在Java中不一样(其中我只是转换整数结果而不是函数)。我知道我可以创建一个简单的功能,但我想知道是否已经有一个。我希望这些函数非常快,我宁愿使用已经实现的东西而不是我创建的函数。
提前感谢您的推荐!
答案 0 :(得分:4)
只需添加256以确保您没有负值,然后将结果修改为256以确保它不大于256.(或者,使用if else
语句)。
public static String sumchars(char c1, char c2) {
return (char)((((int)c1 + int(c2)) + 256) % 256);
}
public static String subchars(char c1, char c2) {
return (char)(((int)c1 - int(c2)) + 256) % 256);
}
答案 1 :(得分:0)
您可以使用Character类:
http://docs.oracle.com/javase/6/docs/api/java/lang/Character.html
Character.isLetter()
Character.isDigit()
Character.isLetterOrDigit()
然后根据返回的布尔值确定要做什么。