日期:2014-05-20  浏览次数:20717 次

一简单的不能再简单的问题!
我现在要判断输入的字符串是不是数字,想通过一个for循环,然后通过ascii码一个个去比较,请问:如何把我每次取出来的字符串转换成相应的ascii码?

------解决方案--------------------
getBytes()
------解决方案--------------------
import java.util.*;
class Test
{
public static void main(String args[])
{
String str= "f45jhki#@ ";
char c[]=str.toCharArray();
for(int i=0;i <c.length;i++)
{
int a=(int)c[i];//a就是转换过的 ascii码

}

}
}
------解决方案--------------------
getBytes()。
使用平台默认的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。
java不是采用ASCII码的.
------解决方案--------------------
用正则表达式轻松搞掂,不用逐个去判断的。

public static boolean isNumber(String str) {
return str.matches( "[\\d.]+ ");
}

------解决方案--------------------
字符转换ASCII的方法
记住,java就是用Unicode表示的!这一点是每个学习Java的人都需要理解的。

Java中可以这样写:
char c = 'a ';
int i = c;
或者直接写:
int i = 'a ';

所以要想知道任何一个字符的Unicode码非常简单:
int i = 'a ';
System.out.println(i);
就可以得到字符a的Unicode。

由于Unicode兼容ASCII(0~255),因此,上面得到的Unicode就是ASCII。
至于转换成二进制或其他进制,Java API提供了方便函数,你可以查Java的API手册。

以字符a的ASCII为例:
int i = 'a ';
String iBin = Integer.toBinaryString(i);//二进制
String iHex = Integer.toHexString(i);//十六进制
String iOct = Integer.toOctalString(i);//八进制
String iWoKao = Integer.toString(i,3);//三进制或任何你想要的35进制以下的进制


------解决方案--------------------
建议用正则表达式,另:建议楼主不要拿“一简单的不能再简单的问题”问别人。
------解决方案--------------------
import org.apache.commons.lang.NumberUtils;

boolean b = NumberUtils.isNumber(str);