3个回答
2013-08-21
展开全部
我刚写完,测试没问题,而且很健壮,以下是代码,Test类:
import java.util.Scanner;
public class Test {
public static boolean checkC(String s) {
if (s.length() != 1) {
return false;
}
char c = s.charAt(0);
if (c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z') {
return true;
} else {
return false;
}
}
public static char showNext(String s) {
char c = s.charAt(0);
return ++c;
}
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入一个字母或输入exit退出程序");
String str = s.nextLine();
while (str != null) {
if (str.equalsIgnoreCase("exit")) {
System.out.println("已退出!exit");
System.exit(-1);
}
if (!checkC(str)) {
System.out.println("输入内容不是字母,重新输入");
str = s.nextLine();
continue;
}
char c = showNext(str);
if (c == ('z' + 1) || c == ('Z' + 1)) {
System.out.println("输入的是 " + --c + " ,没有下一个了");
str = s.nextLine();
continue;
} else {
System.out.println(c);
}
str = s.nextLine();
}
}
} 答案补充 Java中实现 字符和ACSLL码的转换,
强制类型转换就行!
这样:
char c = 'c';
System.out.println((int)c);
或者直接赋值给int行变量也行!
这样:
char c = 'c';
int i = c;
System.out.println(i);
输出99
import java.util.Scanner;
public class Test {
public static boolean checkC(String s) {
if (s.length() != 1) {
return false;
}
char c = s.charAt(0);
if (c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z') {
return true;
} else {
return false;
}
}
public static char showNext(String s) {
char c = s.charAt(0);
return ++c;
}
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入一个字母或输入exit退出程序");
String str = s.nextLine();
while (str != null) {
if (str.equalsIgnoreCase("exit")) {
System.out.println("已退出!exit");
System.exit(-1);
}
if (!checkC(str)) {
System.out.println("输入内容不是字母,重新输入");
str = s.nextLine();
continue;
}
char c = showNext(str);
if (c == ('z' + 1) || c == ('Z' + 1)) {
System.out.println("输入的是 " + --c + " ,没有下一个了");
str = s.nextLine();
continue;
} else {
System.out.println(c);
}
str = s.nextLine();
}
}
} 答案补充 Java中实现 字符和ACSLL码的转换,
强制类型转换就行!
这样:
char c = 'c';
System.out.println((int)c);
或者直接赋值给int行变量也行!
这样:
char c = 'c';
int i = c;
System.out.println(i);
输出99
2013-08-21
展开全部
用ACSLL码输入的字母加一不就可以了吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-21
展开全部
//给你一个与上面不同的方法 数组做的用的是C# ,java应该也一样的.
char getNextChar(char c)
{
string s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
char[] cs = s.ToCharArray();
int i = 0;
bool have = true;
foreach (char _c in cs)
{
if (_c == c)
{
have = true;
break;
}
i++;
}
if (have)
{
if (i == cs.Length - 1)
{
return cs[0];
}
else
{
return cs[i + 1];
}
}
else
{
throw new Exception("只允许输入字母!");
}
}
char getNextChar(char c)
{
string s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
char[] cs = s.ToCharArray();
int i = 0;
bool have = true;
foreach (char _c in cs)
{
if (_c == c)
{
have = true;
break;
}
i++;
}
if (have)
{
if (i == cs.Length - 1)
{
return cs[0];
}
else
{
return cs[i + 1];
}
}
else
{
throw new Exception("只允许输入字母!");
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询