“小钢炮”通过精心收集,向本站投稿了6篇Java判断一个字符串为数字(正负、小数),以下是小编精心整理后的Java判断一个字符串为数字(正负、小数),供大家参考借鉴,希望可以帮助到有需要的朋友。
- 目录
篇1:Java判断一个字符串为数字(正负、小数)
Java判断一个字符串为数字(正负、小数)
这些天因为工作上的需求,其中一个小环节是传来一个String类型的参数,需要判断该参数是否为数字(正负、正数小数都要能判断)。
当走到这个环节时,首先想到的是isDigit方法,具体不清楚是哪个类下的了,不过查API后发现该方法不可行,它只能判断正整数。不过为了以后可能会用到该方法,所以特意写了个小程序当备用。
代码如下:
//采用Character.isDigit()方法来判断一个字符串是否为数字 //局限性很大,只能判断全是数字的`字符串 char[] strArr = str.toCharArray(); int count = 0; for(int i = 0; i < strArr.length; i++) { if(Character.isDigit(strArr[i]) == false) { count++; } } if(count >0) { System.out.println(“Is not Number!”); } else { System.out.println(“Is Number!” + str); }
后来通过百度,又找到了另外两种方法,一种是通过强制类型转换的方式,一种就是正则表达式了。
对于强制类型转换的方式,代码可以这样写:
//采用强制类转换来判断一个字符串是否为数字//有局限性,如果要判断是int型或double型,就必须要调整转换语句,但可以判断正负try { //Integer num = Integer.valueOf(str); Double num2 = Double.valueOf(str); //System.out.println(“Is Number!” + num); System.out.println(“Is Number!” + num2);} catch (Exception e) { System.out.println(“Is not Number!”);}
最后能解决我问题的,还是通过正则表达式的方式了。
代码如下:
//采用正则表达式的方式来判断一个字符串是否为数字,这种方式判断面比较全 //可以判断正负、整数小数 Boolean strResult = str.matches(“-?[0-9]+.*[0-9]*”); if(strResult == true) { System.out.println(“Is Number!”); } else { System.out.println(“Is not Number!”); }
通过这次的问题,我也发现了自身的不足。正则表达式确实很牛,但是我对它的认识,还停留在了解阶段。所以后续工作中,一定要有意识的多去学习它,使用它。
篇2:Shell脚本计算字符串长度和判断字符串为空小技巧
这篇文章主要介绍了Shell脚本计算字符串长度和判断字符串为空小技巧,本文分别给出计算字符串长度和判断字符串为空各3种实现方法,需要的朋友可以参考下
一些需要注意的脚本问题
计算字符串长度可用的三种方法:
代码如下:
echo “$str”|awk ‘{print length($0)}‘
expr length “$str”
echo “$str”|wc -c
但是第三种得出的值会多1,可能是把结束符也计算在内了
判断字符串为空的方法有三种:
代码如下:
if [ “$str” = “” ]
if [ x“$str” = x ]
if [ -z “$str” ]
注意:都要代双引号,否则有些命令会报错,
Shell脚本计算字符串长度和判断字符串为空小技巧
,
篇3:判断一个int型数字是否是自守数
自守数
如果某个数的平方的末尾几位数等于这个数,那么就称这个数为自守数,
显然,5和6是一位自守数(5x5=25 6x6=36),25x25=625 76x76=5776,所以25和76是两位自守数。
详细描述:
接口说明
原型:
Public static boolean isAutoMorphicNum( int num)
输入参数:
num 需要判断的数
输出参数(指针指向的内存区域保证有效):
无
返回值:
true 是自守数
false 不是自守数
涉及知识点:
JAVA语言基础:数字处理
我写的程序:
public static boolean isAutoMorphicNum(int num) { /*在这里实现功能*/ String input = num + “”; String power = num * num + “”; System.out.println(num * num); if (input.equals(power.substring(power.length - input.length()))) { return true; } return false; }
我自己的测试用例:
public void testCase01() { assertEquals(Demo.isAutoMorphicNum(0),true); assertEquals(Demo.isAutoMorphicNum(1),true); assertEquals(Demo.isAutoMorphicNum(5),true); assertEquals(Demo.isAutoMorphicNum(6),true); assertEquals(Demo.isAutoMorphicNum(25) ,true); assertEquals(Demo.isAutoMorphicNum(76) ,true); assertEquals(Demo.isAutoMorphicNum(376) ,true); assertEquals(Demo.isAutoMorphicNum(625) ,true); assertEquals(Demo.isAutoMorphicNum(9376) ,true); assertEquals(Demo.isAutoMorphicNum(10), false); assertEquals(Demo.isAutoMorphicNum(100) ,false); assertEquals(Demo.isAutoMorphicNum(999999999) ,false); }
我自己的测试用例都是能通过的,但是提交至答题系统后,系统测试说有一个测试用例不通过:
关于负数和最大的int的数我已经测试过了,输入的数是否是负数对系统的判别结果不影响,即貌似负数不可能是自守数,当输入为最大int值:999999999时,我的程序也能判断出结果,即为false(不是自守数),
我不知道我还有哪种情况没有考虑到,求帮忙。
篇4:将字符串转化为时间,犯了一个低级错误
今天犯了了个很低级的错误,想把UIDatePickView的默认选中时间设置为当前时间的下一天的11:30,我的思路:首先获取当前时间---将当前时间字符串化-----截取次字符串,分理处当前的年月日中得日----将日+1----然后字符串拼接成自己想要的日期格式-------将拼接成的日期转化成NSDate-------然后设置默认时间
我犯的错误,将字符串转化为时间的时候,一直想象NSDate的会有这样的方法,结果查看NSDate的API没有查到,犯错就是没有第一时间想到:NSDateFormatter.
下面看看我设置的代码:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
UIDatePicker * pick = [[UIDatePicker alloc] initWithFrame.:CGRectMake(0, self.view.frame.size.height-215, 320, 215)];
pick.minimumDate = [NSDate date];
NSDate * tempDate = [NSDate dateWithTimeIntervalSinceNow:24*60*60];
NSString * str = [NSString stringWithFormat:@“%@”,tempDate];
NSString * result = [[str substringWithRange:NSMakeRange(0, 10)] stringByAppendingFormat:@“ 11:30”];
NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@“yyyy-MM-dd HH:mm”];
NSDate * resultDate = [formatter dateFromString:result];
[pick setDate:resultDate];
[pick addTarget:self action:@selector(pickValueChanged:) forControlEvents:UIControlEventValueChanged];
self.datePicker = pick;
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@“zh_CN”];//设置为中文显示
pick.locale = locale;
[self.view addSubview:pick];
if (IPhone5)
{
self.bgView.frame. = CGRectMake(0, -10, 320, self.view.frame.size.height);
}
else
{
self.bgView.frame. = CGRectMake(0, -60, 320, self.view.frame.size.height);
}
#pragma mark - pick事件
-(void)pickValueChanged:(UIDatePicker *)aPick
{
if ([aPick.date timeIntervalSinceDate:[NSDate date]]<0)
{
NSDate * tempDate = [NSDate dateWithTimeIntervalSinceNow:24*60*60];
NSString * str = [NSString stringWithFormat:@“%@”,tempDate];
NSString * result = [[str substringWithRange:NSMakeRange(0, 10)] stringByAppendingFormat:@“ 11:30”];
NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@“yyyy-MM-dd HH:mm”];
NSDate * resultDate = [formatter dateFromString:result];
[aPick setDate:resultDate];
}
else
{
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@“yyyy-MM-dd HH:mm”];
NSString* dateStr = [dateFormatter stringFromDate:aPick.date];
NSString * tempStr = [dateStr substringToIndex:16];
self.text_time.text = tempStr;
}
}
UIDatePicker * pick = [[UIDatePicker alloc] initWithFrame.:CGRectMake(0, self.view.frame.size.height-215, 320, 215)];
pick.minimumDate = [NSDate date];
NSDate * tempDate = [NSDate dateWithTimeIntervalSinceNow:24*60*60];
NSString * str = [NSString stringWithFormat:@“%@”,tempDate];
NSString * result = [[str substringWithRange:NSMakeRange(0, 10)] stringByAppendingFormat:@“ 11:30”];
NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@“yyyy-MM-dd HH:mm”];
NSDate * resultDate = [formatter dateFromString:result];
[pick setDate:resultDate];
[pick addTarget:self action:@selector(pickValueChanged:) forControlEvents:UIControlEventValueChanged];
self.datePicker = pick;
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@“zh_CN”];//设置为中文显示
pick.locale = locale;
[self.view addSubview:pick];
if (IPhone5)
{
self.bgView.frame. = CGRectMake(0, -10, 320, self.view.frame.size.height);
}
else
{
self.bgView.frame. = CGRectMake(0, -60, 320, self.view.frame.size.height);
}
#pragma mark - pick事件
-(void)pickValueChanged:(UIDatePicker *)aPick
{
if ([aPick.date timeIntervalSinceDate:[NSDate date]]<0)
{
NSDate * tempDate = [NSDate dateWithTimeIntervalSinceNow:24*60*60];
NSString * str = [NSString stringWithFormat:@“%@”,tempDate];
NSString * result = [[str substringWithRange:NSMakeRange(0, 10)] stringByAppendingFormat:@“ 11:30”];
NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@“yyyy-MM-dd HH:mm”];
NSDate * resultDate = [formatter dateFromString:result];
[aPick setDate:resultDate];
}
else
{
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@“yyyy-MM-dd HH:mm”];
NSString* dateStr = [dateFormatter stringFromDate:aPick.date];
NSString * tempStr = [dateStr substringToIndex:16];
self.text_time.text = tempStr;
}
篇5:Shell脚本中判断变量为数字的3种方法
这篇文章主要介绍了Shell脚本中判断变量为数字的3种方法,本文分别介绍了expr、sed两种方法,并给出了一个判断脚本,需要的朋友可以参考下
方法1:通过expr 计算变量与一个整数值相加,如果能正常执行则为整数,否则执行出错,$?将是非0的值
代码如下:
expr $args + 0 &>/dev/null
方法2:打印变量通过sed替换的方式,将变量中的数字替换为空,如果执行替换后变量为空,则为整数
代码如下:
echo $args | sed ‘s/[0-9]//g‘
如果判断负数则再用sed过滤负号
代码如下:
echo $args | sed ‘s/[0-9]//g‘ | sed ‘s/-//g‘
下面的脚本通过两个函数来实现数值判断,代码很简单,就不加注释了。
代码如下:
#!/bin/bash
usage{
cat <
USEAGE:sh $0args1 args2
exit 1
EOF
}
checkInt(){
expr $1+ 0&>/dev/null
[ $? -ne 0] && { echo “Args must be integer!”;exit 1; }
}
checkInt1(){
tmp=`echo $1|sed ‘s/[0-9]//g‘`
[ -n “${tmp}”]&& { echo “Args must be integer!”;exit 1; }
}
[ $# -ne 2]&&usage
args1=$1
args2=$2
checkInt $args1
checkInt1 $args2
if[ $args1 -gt $args2 ];then
echo “yes,$args1 greate than $args2”
else
echo “no,$args1 less than $args2”
fi
篇6:Python检测一个对象是否为字符串类的方法
这篇文章主要介绍了Python检测一个对象是否为字符串类的方法,即检测是一个对象是否是字符串对象,本文还讲解了一个有趣的判断方法,需要的朋友可以参考下
目的
测试一个对象是否是字符串
方法
Python的字符串的基类是basestring,包括了str和unicode类型,一般可以采用以下方法:
代码如下:
def isAString(anobj):
return isinstance(anobj,basestring)
不过以上方法对于UserString类的实例,无能无力。
代码如下:
In [30]: b=UserString.UserString(‘abc‘)
In [31]: isAString(b)
Out[31]: False
In [32]: type(b)
Out[32]:
Python中常用的鸭子判断法:如果它走路像鸭子,叫声像鸭子,就可以认为它是鸭子了。
代码如下:
def isStringLike(anobj):
try:
anobj.lower() + anobj + ‘ ‘
except:
return False
else:
return True
测试结果如下:
代码如下:
>>>import UserString
>>>b=UserString.UserString(‘abc‘)
>>>isStringLike(b)
True
>>>
关于风格
根据自己的语气去执行任务,在此过程中检测并处理由于不匹配产生的所有错误和异常,
这种处理方式称为:
代码如下:
EAFP:It‘s easier to ask forgiveness than permission.
try/except是保证该风格的关键工具。
八卦一下,关于UserString类
对于2.X版本:Python文档中提到,如果不涉及到2.2以前的版本,请考虑直接使用str类型来代替UserString类型。
对于3.X版本:该模块已经移到collection模块中。
该类主要有两种方法:
代码如下:
class UserString.UserString([sequence])
具体使用前面已经举例,注意可以使用str()转化为str类型
代码如下:
class UserString.MutableString([sequence])
字符串也可以变哦!Look here:
代码如下:
a=UserString.MutableString(‘abc‘)
a[0]=‘c‘
In [10]: a
Out[10]: ‘cbc‘
Python文档上有行黑体字,原来已经是弃用的方法,3.0就没有了:
代码如下:
Deprecated since version 2.6: The MutableString class has been removed in Python 3.0.
★ java自荐信
★ java个人简历
★ 判断的近义词
Java判断一个字符串为数字(正负、小数)(整理6篇)




