java怎么判断给定字符串是否为double类型

java怎么判断给定字符串是否为double类型,第1张

如果确定这字符全是数字的话你可以截取起始位到
indexOf("")
到这个点然后由这个点到此字符串的length()
当然连""都找不到就不用再截取直接这字符串就不是double啦

public class WareTest{
public static void main(String[] args) {
lxtest("2");
}
public static void lxtest(Object a){
if(a instanceof Integer){
Systemoutprintln("是数字:"+a);
}else{
Systemoutprintln("不是数字");
}
}
}
这样就行了,如果满意请及时采纳,谢谢~

你可以用一个字符串来保存你的输入,然后你可以将输入利用String类库中的函数进行转换,或者利用contains()函数看,是否还有小数点。

Systemoutprintln("please input the ten strings:");

Scanner sc = new Scanner(Systemin);

String number = scnextLine();

if(numbercontains("")){

//说明是一个小数

double d = DoublevalueOf(s);

}

else{

//

int i = IntegervalueOf(s);

}

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

1使用CharacterisDigit(char)判断
String str = "123abc";
if (!""equals(str)) {
char num[] = strtoCharArray();//把字符串转换为字符数组
StringBuffer title = new StringBuffer();//使用StringBuffer类,把非数字放到title中
StringBuffer hire = new StringBuffer();//把数字放到hire中

for (int i = 0; i < numlength; i++) {

// 判断输入的数字是否为数字还是字符
if (CharacterisDigit(num[i])) {把字符串转换为字符,再调用CharacterisDigit(char)方法判断是否是数字,是返回True,否则False
hireappend(num[i]);// 如果输入的是数字,把它赋给hire
} else {
titleappend(num[i]);// 如果输入的是字符,把它赋给title
}
}
}

2使用类型转换判断
try {
String str="123abc";
int num=IntegervalueOf(str);//把字符串强制转换为数字
return true;//如果是数字,返回True
} catch (Exception e) {
return false;//如果抛出异常,返回False
}

3使用正则表达式判断

String str = ""; 
boolean isNum = strmatches("[0-9]+"); 
//+表示1个或多个(如"3"或"225"),表示0个或多个([0-9])(如""或"1"或"22"),表示0个或1个([0-9])(如""或"7")

ps:这个方法只能用于判断是否是正整数

如果是Java的String对象的话,则一定是Unicode的,这个没有为什么,Java就是这么定的。
我猜你的问题应该是如何判断一段字节流是什么编码类型,对吗?比如一个文件,或是网络上面取下来的一段Byte数组,你需要用一个合适的编码来解析成字符串。
这个让你失望了,没有一个文档化的,确定的方法来判断,只能用测试的方法,这个方法也只是猜测,不能百分百的确定,方法如下:
用常见的编码方式对字节流进行解码,比如Unicode,UTF8,
UTF8
without
BOM,
UTF16,
ANSI等等。
对解析的结果进行判断,是不是一个合理的可打印字符,可打印字符最多的解码方式就是最可能的编码了。
如何判断可打印字符?流程如下:把解析好的字符串按照字符进行遍历,把每一个字符转化成Unicode编码,看看这些编码是不是Unicode的支持范围极客。
如果发现有种编码方式都是可打印字符,那么再使用本步骤:对字符串进行分词,分词这个在此不作赘述,你自己再研究一下。分词效果好的就是最可能的编码了。(不过通常到第三步就能搞定了,第四部绝大部分用不着)

1使用CharacterisDigit(char)判断
char num[] = strtoCharArray();//把字符串转换为字符数组
StringBuffer title = new StringBuffer();//使用StringBuffer类,把非数字放到title中
StringBuffer hire = new StringBuffer();//把数字放到hire中
for (int i = 0; i < numlength; i++) {
// 判断输入的数字是否为数字还是字符
if (CharacterisDigit(num[i])) {把字符串转换为字符,再调用CharacterisDigit(char)方法判断是否是数字,是返回True,否则False
hireappend(num[i]);// 如果输入的是数字,把它赋给hire} else {titleappend(num[i]);// 如果输入的是字符,把它赋给title}}}
2使用类型转换判断try {String str="123abc";
int num=IntegervalueOf(str);//把字符串强制转换为数字
return true;//如果是数字,返回True
} catch (Exception e) {
return false;//如果抛出异常,返回False}
3使用正则表达式判断
String str = "";
boolean isNum = strmatches("[0-9]+");
//+表示1个或多个(如"3"或"225"),表示0个或多个([0-9])(如""或"1"或"22"),表示0个或1个([0-9])(如""或"7")
ps:这个方法只能用于判断是否是正整数

int 和 long不同在于精度,小于int最大值时候可以不写L,当大于时必须写L,这就是满足编译器,换你的话说是java中的判断。你的疑问在于你把字符和数值弄混了,字符有它的ascii码表示法,7也可以是‘7’这俩是不同的东西,你把7理解成了‘7’是不对的,7就用二进制表示,int的时候long的时候因为没用到那么多位是一样的,但是一旦超过了int的表示范围,你不加L编译器就会不高兴,这就是规定,死记就行,越想越偏


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/13380114.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-31
下一篇2025-08-31

发表评论

登录后才能评论

评论列表(0条)

    保存