在java中,如何判断是字符串还是数字,判断字符串都是数字用于什么类型

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&Java采用3种方式判断用户输入的字符串是否为回文_Linux编程_Linux公社-Linux系统门户网站
你好,游客
Java采用3种方式判断用户输入的字符串是否为回文
来源:Linux社区&
作者:tongyuehong
回文的定义:"回文数" 就是正读倒读都一样的整数。如奇数个数字:98789, 这个数字正读是98789,倒读也是98789;偶数个数字3223也是回文数。
我们今天将回文数扩展为字母和数字组合回文,如adgu6776ugda也是回文,我们采用三种方式判断这种类型的字符串是否为回文:
1.调用StringBuffer类对象的reverse()方法,将字符串翻转后与之前的字符串比较,如果相等则为回文,反之亦然;
2.采用low和high两个变量分别对应字符串对称位置的index,所有对称位置的字符都相等则为回文,反之亦然;
3.使用一个变量i来表示字符串的下标,找出对称位置的index关系来判断字符串是否为回文。
二、源代码
import java.util.Simport javax.swing.JOptionP
/**&* 回文描述:正着读过去和倒着读回来的字符串序列相同则为回文,如:1h3gkg3h1是回文&* @author tong&*&*/public class PalindromeIgnoreNonAlphanumeric {& & public static void main(String[] args) {& & &//可以使用javax.swing.JOptionPane类中的showInputDialog()方法提示用户输入字母或者数字串& & & & String s = JOptionPane.showInputDialog("请输入输入字符串:");& & & & & //调用isPalindromeByBuffer()方法& & & & String output = s + (isPalindromeByBuffer(s)?"是":"不是")+"回文。";& & & & JOptionPane.showMessageDialog(null, output);& & & & & & & & s = JOptionPane.showInputDialog("请输入输入字符串:");& & & & //调用isPalindromeByCharAt()方法& & & & output = s + (isPalindromeByCharAt(s)?"是":"不是")+"回文。";& & &
& & & & JOptionPane.showMessageDialog(null, output);& & & & & & & & //使用Scanner(System.in)方法提示用户输入字符串& System.out.println("请输入输入字符串:");& Scanner in=new Scanner(System.in);& String strOrigin=in.next();&& //调用isPalindromeByCharAtSingle()方法& System.out.print(strOrigin + (isPalindromeByCharAtSingle(s)?"是":"不是")+"回文。");
& & }& & & & /**& &
* 通过调用StringBuffer的对象的reverse()方法,来判断翻转前后字符串是否相等,确定是否为回文& &
* @param s& &
* @return& &
*/& & public static boolean isPalindromeByBuffer(String s) {& & & & String strOrigin = filterLetterAndDigit(s);& & & & //将strOrigin作为输入参数,构造一个StringBuffer对象& & & & StringBuffer strBuf = new StringBuffer(strOrigin);& & & & //调用StringBuffer对象自带的reverse()方法进行字符串翻转,最后调用toString()返回一个String类型字符串& & & & String strAfterReverse = strBuf.reverse().toString();& & & & & //通过equals()方法判断原来的字符串和翻转后的字符串是否相等,来确定是否为回文& & & & return strOrigin.equals(strAfterReverse);& & }& & & & /**& &
* 通过字符串中的对称位置字符串是否相同来判断是否为回文,这里用了两个变量low和high来分别对应字符串对称位置的index& &
* @param s& &
* @return& &
*/& & public static boolean isPalindromeByCharAt(String s) {& & &//low和high分别对应字符串对称位置的index,以此来判断所有对称位置字符是否相同& & & & int low = 0;& & & & int high = s.length() - 1;& & & & while (low & high) {& & & & & & if (s.charAt(low) != s.charAt(high))& & & & & & & && // 不是回文& & & & & & low++;& & & & & & high--;& & & & }& & & && & & & &
// 是回文& & }& & & & /**& &
* 通过字符串中的对称位置字符串是否相同来判断是否为回文,这里用了一个变量i来对应字符串对称位置的index& &
* @param s& &
* @return& &
*/& & public static boolean isPalindromeByCharAtSingle(String s) {& & &//通过对称下标的关系使用一个变量即可判断所有对称位置字符是否相同& & &for(int i=0;i&s.length()/2;i++){& & & //只有当前一半字符串和后一半字符串对应位置相同,那么才是回文,只有有一个对称位置的字符不同就不是回文& & & if(s.charAt(i)!=s.charAt(s.length()-i-1)){& & & && & & }& & &}& & & & & & & &&
& & }& & & & /**& &
* 通过调用Character.isLetterOrDigit(Char char)过滤字母或者数字,判断字母或者数字的组合是否为回文& &
* @param s& &
* @return String& &
*/& & public static String filterLetterAndDigit(String s) {& & & & StringBuffer strBuf = new StringBuffer();& & & & for (int i = 0; i & s.length(); i++) {& & & & & & if (Character.isLetterOrDigit(s.charAt(i))) {& & & & & & &//调用StringBuffer的append(Char char)方法,将输入的字母或者数字加入其中& & & & & & & & strBuf.append(s.charAt(i));& & & & & & }& & & & }& & & & //返回String类型,需要将StringBuffer转换为String,需要调用StringBuffer对象的toString()方法& & & & return strBuf.toString();& & }& & }
本文永久更新链接地址:
相关资讯 & & &
& (08月04日)
& (07月15日)
& (10月10日)
& (07月25日)
& (06月11日)
图片资讯 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款java中如何判断一个字符串是不是数值类型,不是判断是不是数字。
[问题点数:40分,结帖人bhqt0910]
java中如何判断一个字符串是不是数值类型,不是判断是不是数字。
[问题点数:40分,结帖人bhqt0910]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2012年7月 Java大版内专家分月排行榜第三2011年11月 Java大版内专家分月排行榜第三2007年12月 Java大版内专家分月排行榜第三2007年10月 Java大版内专家分月排行榜第三
2012年7月 Java大版内专家分月排行榜第三2011年11月 Java大版内专家分月排行榜第三2007年12月 Java大版内专家分月排行榜第三2007年10月 Java大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。& 开源中国(OSChina.NET) |
开源中国社区(OSChina.net)是工信部
指定的官方社区&在编程的时候,经常遇到要判断一个字符串中的字符是否是数字(0-9),判断字符串是不是数字,大家可能会用一些java自带的方法,也有可能用其他怪异的招式,比如判断是不是整型数字,将字符串强制转换成整型,不是数字的就会抛出错误,那么就不是整型的了,下面我给大家介绍几种实现方法1.使用Character.isDigit(char)判断(仅能判断一个字符)[java]&String&str&=&"123abc";&&&&if&(!"".equals(str))&{&&&&&char&num[]&=&str.toCharArray();//把字符串转换为字符数组&&&&&StringBuffer&title&=&new&StringBuffer();//使用StringBuffer类,把非数字放到title中&&&&&StringBuffer&hire&=&new&StringBuffer();//把数字放到hire中&&&&&&&for&(int&i&=&0;&i&&&num.&i++)&{&&&&&&//&判断输入的数字是否为数字还是字符&&&&&&if&(Character.isDigit(num[i]))&{把字符串转换为字符,再调用Character.isDigit(char)方法判断是否是数字,是返回True,否则False&&&&&&&&&&hire.append(num[i]);//&如果输入的是数字,把它赋给hire&&&&&&}&else&{&&&&&&&title.append(num[i]);//&如果输入的是字符,把它赋给title&&&&&&}&&&&&}&&&&}&&&&&2.使用类型转换判断[java]&try&{&&&&&&&&&&&&&&String&str="123abc";&&&&&&&&&&&&&&int&num=Integer.valueOf(str);//把字符串强制转换为数字&&&&&&&&&&&&&&return&//如果是数字,返回True&&&&&&&&&&}&catch&(Exception&e)&{&&&&&&&&&&&&&&return&//如果抛出异常,返回False&&&&&&&&&&}&&&&3.使用正则表达式判断[java]&String&str&=&"";&&&boolean&isNum&=&str.matches("[0-9]+");&&&//+表示1个或多个(如"3"或"225"),*表示0个或多个([0-9]*)(如""或"1"或"22"),?表示0个或1个([0-9]?)(如""或"7")&&&&&&4.使用Pattern类和Matcher[java]&String&str&=&"123";&&&&&&Pattern&pattern&=&pile("[0-9]+");&&&&&&Matcher&matcher&=&pattern.matcher((CharSequence)&str);&&&&&&boolean&result&=&matcher.matches();&&&&&&if&(result)&{&&&&&&&&&&System.out.println("true");&&&&&&}&else&{&&&&&&&&&&System.out.println("false");&&&&&&} &&
阅读(...) 评论()

我要回帖

更多关于 判断字符串都是数字 的文章

 

随机推荐