黑马程序员技术交流社区

标题: 有没有更好的判断一个输入的字符是字母还是数字或者其... [打印本页]

作者: 不冬眠的蚂蚁    时间: 2014-3-6 11:18
标题: 有没有更好的判断一个输入的字符是字母还是数字或者其...
本帖最后由 不冬眠的蚂蚁 于 2014-3-13 22:47 编辑

我用的是ASCII表来判断,你们有没有更好的方法,有没有java内部封装好的方法??
这是我写的判断
if((int)c>64&&(int)c<123){
                          System.out .println("你输入的字符串中包含字母,不能转换 请调试重输");
                          break;
                   }

作者: Monkey·D·Chas    时间: 2014-3-6 12:27
你这段代码有问题   65 -  90 为 大写字母  97- 122 为小写字母、、、中间的还有几个不是字母的。。
这小程序 可以自己封装成一个方法。。给定一个字符  然后判断他是不是字母
boolean  case(char  c){  
              if(c<a&&c>z||c<A&&C>Z) return false;else return true;

     


}

作者: zhuyunfei00000    时间: 2014-3-6 12:28
拿给你 最近做的~
HashMap<String, Integer> map = new HashMap<String, Integer>();
String string = "break char do double else float for if int return void while + - * / % ++ -- > >= < <= == != && || ! << >> | & = "
   + "+= -= *= /= %= >>= <<= &= |= [ ] ( ) { } # ; , cout main iostream include printf using namespace std a b c d";
String string2 = "101 102 103 104 105 106 107 108 109 110 111 112 201 202 203 204 205 206 207 208 209 210 211"
   + " 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 301 302 303 304 305 306 307 308 309 310 311 312 313"
   + " 314 315 316 317 400 400 400 400";

String[] sting4 = string.split(" ");
String[] string3 = string2.split(" ");
int[] arrayInt = new int[string3.length];
{
  for (int i = 0; i < arrayInt.length; i++) {
   arrayInt[i] = Integer.parseInt(string3[i]);
   map.put(sting4[i], arrayInt[i]);
  }
  char c = '"';
  String string5 = String.valueOf(c);
  map.put(string5, 318);
  // System.out.println(map.toString());
}
// 判断是否数字
boolean isDigit(char ch) {
  if (ch > 47 && ch < 58)
   return true;
  else
   return false;
}
// 判断是否是字母
boolean isLeter(char ch) {
  if ((ch > 64 && ch < 91) || (ch > 96 && ch < 123))
   return true;
  else
   return false;
}



作者: centian2005    时间: 2014-3-6 12:32
给楼主点提示,
你可以用java.util.Scanner的这个类,
Scanner scan = new Scanner(System.in) ;        // 从键盘接收数据
System.out.print("输入整数:") ;
                if(scan.hasNextInt()){        // 判断输入的是否是整数{:3_57:}
                        i = scan.nextInt() ;        // 接收整数
                        System.out.println("整数数据:" + i) ;
对于其他数据来说,原理也是一样的。
作者: q527198615    时间: 2014-3-6 13:06
  1. import java.util.Scanner;


  2. public class CharacterDemo {
  3.         public static void main(String[] args) {
  4.                 Scanner in = new Scanner(System.in);
  5.                 String sch = in.nextLine();
  6.                 char[] ch =  sch.toCharArray();
  7.                 for (char c : ch) {
  8.                         if(Character.isDigit(c)){
  9.                                 System.out.println("含有数字");
  10.                         }
  11.                         if(Character.isLetter(c)){
  12.                                 System.out.println("含有字母");
  13.                         }
  14.                         if(Character.isWhitespace(c)){
  15.                                 System.out.println("含有空格");
  16.                         }
  17.                 }
  18.         }
  19. }
复制代码
楼主可以使用java.lang.Character这个类,已经为你封装好了的,上面是为你写的实例代码,具体查看API

作者: 年少丶    时间: 2014-3-6 17:29
q527198615 发表于 2014-3-6 13:06
楼主可以使用java.lang.Character这个类,已经为你封装好了的,上面是为你写的实例代码,具体查看API[/back ...

好方法,长知识了
作者: q527198615    时间: 2014-3-6 18:09
年少丶 发表于 2014-3-6 17:29
好方法,长知识了

呵呵,那你还点哈支持支持下,可怜我技术分还没达到博客关呢!!!
作者: 艮昕辶    时间: 2014-3-6 18:29
先导包
import java.lang.Character
包里有个static boolean isDigit(char ch) 数字返回1非数字返回0
这种问题为什么不百度

作者: 年少丶    时间: 2014-3-6 21:10
q527198615 发表于 2014-3-6 18:09
呵呵,那你还点哈支持支持下,可怜我技术分还没达到博客关呢!!!

哈哈,明天下午我就面试了
作者: 年少丶    时间: 2014-3-6 21:11
q527198615 发表于 2014-3-6 18:09
呵呵,那你还点哈支持支持下,可怜我技术分还没达到博客关呢!!!

哈哈,明天下午我就面试了
作者: q527198615    时间: 2014-3-6 21:11
年少丶 发表于 2014-3-6 21:10
哈哈,明天下午我就面试了

那个老师给你面试?到时候给我说下经验哦?你现在得了多少分了?
作者: 年少丶    时间: 2014-3-6 21:14
q527198615 发表于 2014-3-6 21:11
那个老师给你面试?到时候给我说下经验哦?你现在得了多少分了?

61.7,白杨老师给我面试
作者: q527198615    时间: 2014-3-6 21:15
年少丶 发表于 2014-3-6 21:14
61.7,白杨老师给我面试

祝你好运,,好好准备,不要忘了反馈哈!!!{:2_40:}
作者: 年少丶    时间: 2014-3-6 21:53
q527198615 发表于 2014-3-6 21:15
祝你好运,,好好准备,不要忘了反馈哈!!!

哦了{:2_33:}
作者: 不冬眠的蚂蚁    时间: 2014-3-7 14:59
zhuyunfei00000 发表于 2014-3-6 12:28
拿给你 最近做的~
HashMap map = new HashMap();
String string = "break char do double else float for ...

辛苦了 我好好看看
作者: 不冬眠的蚂蚁    时间: 2014-3-7 15:00
Monkey·D·Chas 发表于 2014-3-6 12:27
你这段代码有问题   65 -  90 为 大写字母  97- 122 为小写字母、、、中间的还有几个不是字母的。。
这小 ...

恩谢谢指点 我就是举个例子  就是想知道 有没有别的好方法
作者: 不冬眠的蚂蚁    时间: 2014-3-7 15:01
q527198615 发表于 2014-3-6 13:06
楼主可以使用java.lang.Character这个类,已经为你封装好了的,上面是为你写的实例代码,具体查看API[/back ...

谢谢   有用




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2