import javautilScanner;
public class Test
{
public static void main (String[] args)
{
String s;
int sum=0;
char c,max;
Scanner sc=new Scanner(Systemin);
s=scnext();
max=scharAt(0);
for(int i=0;i<slength();i++)
{
c=scharAt(i);
sum+=c;
if(c>max)
max=c;
}
scclose();
Systemoutprintln("ASCII码值的和:"+sum);
Systemoutprintln("ASCII值最大的字母:'"+max+"'");
}
}
大哥你要分清楚'a'是表示字符a,而"a"表示字符串常量a,
字符和字符串是不同的啊。
你把String a ="a";
改成 String a='a';就可以了简单的转换,如下就可以:
public static void main(String[] agrs) {
String source = "30";
int code ;
code = IntegerparseInt(source, 16);
// 如果30代表是 16进制的30话,就取16
// 如果30代表是 10进制的30话,就取10
// code = IntegerparseInt(source, 10);
char result = (char) code;
Systemoutprintln(result);
}
根据自己程序健壮性的要求,可以对 int code的范围做出判断,防止 int转向char时产生异常。ascll码中:128-255是IBM-PC上专用的。000-127是标准
所以不是IBM-PC是不能输出128到255的ascll码字符的
可以参看ascll码表的使用说明
这里还有一个问题是ascll码127用C语言和C++都是可以输出它对应的字符的。
但是用java输出的时候好像是一个空的。这个可能是与java的字符集的实现有关呀
代码如下:
Systemoutprint("输入一个字符:");String str = inputnext();
boolean isNumber = strmatches("^[-+](([0-9]+)([]([0-9]+))|([]([0-9]+)))$");
if (isNumber) {
Systemoutprintln("输入的数字是:" + str);
} else {
Systemoutprintln("输入的ASCII码是:" + (int) strcharAt(0));
}
运行结果是:
输出字符串中ASCII码最大的对应字符,如下方式供参考:
代码:
public static void main(String[] args) {
// 目标字符串
String string = "acbACB";
// 字符串转换成字符数组
char[] cs = stringtoCharArray();
// 对字符数组进行升序排序
for (int i = 0; i < cslength - 1; i++) {
int temp = 0;
for (int j = 0; j < cslength - 1 - i; j++) {
if (cs[j] > cs[j + 1]) {
temp = cs[j];
cs[j] = cs[j + 1];
cs[j + 1] = (char) temp;
}
}
}
// 取ASCII码最大的对应字符
char c = cs[cslength - 1];
Systemoutprintln("字符串中ASCII码最大的对应字符是:" + c);
}
}
运行结果:
如果就是把字母用ASIIN码表示然后计算吧。例如Systemoutprintln((int)('A'));会输出65;(可能是65,我记不清了,不好意思,你可以查一下ASIN码表)欢迎分享,转载请注明来源:内存溢出
评论列表(0条)