Java语言程序设计(二十二)检测回文串以及进制转换问题
检测回文串问题:
对于一个字符串,如果从前向后读和从后向前读都是同一个字符串,则称之为回文串,我们这里的问题是编写一个程序,提示用户输入一个字符串,然后报告该字符串是否是回文串。
我们在编写程序之前要想好如何实现,我们要先判断字符串的第一个字符和最后一个字符是否相等,如果相等检测第二个字符,这个过程持续进行,直到出现不匹配的情况或者串中所有的字符检查完毕。要实现这个想法,我们使用两个名为low和high的变量来表示字符串s开始的位置和结尾位置的两个字符,程序清单如下:
package huiwen;
import java.util.Scanner;
/**
*
* @author john
*/
public class Huiwen {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner input = new Scanner(System.in);
System.out.println("Please enter a string:");
String s = input.nextLine();
if(Huiwen(s))
System.out.println(s +"is a palindrome");
else
System.out.println(s+"is not a palindrome");
}
public static boolean Huiwen(String s){
int low=0;
int high = s.length()-1;
while(low<high){
if(s.charAt(low)!=s.charAt(high))
return false;
low++;
high--;
}
return true;
}
}
程序运行结果如上所示,程序正确运行。
将十六进制转换为十进制:
程序将提示用户将一个十六进制数作为字符串输入,我们将每个十六进制数转换为一个十进制数的穷举方法大家都明白,我们这次使用一个高效算法,将十六进制的数字转换为十进制数,先设十进制数变量为demicalvalue,它为0,之后将十六进制的每一位数字转换为十进制,之后decimalvalue = decimalvalue*16+转换为十进制的数字,直到最后一位,我们在本次设计中还使用了上一篇文章提到的,将提取出来的每一位字符变为大写,这样即使用户输入小写字母也可以正确输出,程序清单如下:
package sixteentoten;
import java.util.Scanner;
/**
*
* @author john
*/
public class Sixteentoten {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner input = new Scanner(System.in);
System.out.println("Please enter a hex number:");
String hex = input.nextLine();
System.out.println("The decimal value for hex number"+hex+"is"+hexToDecimal(hex.toUpperCase()));
}
public static int hexToDecimal(String hex){
int decimalvalue = 0;
for(int i=0;i<hex.length();i++){
char hexchar = hex.charAt(i);
decimalvalue = decimalvalue*16+hexCharToDecimal(hexchar);
}
return decimalvalue;
}
public static int hexCharToDecimal(char ch){
if(ch>='A'&&ch<='F')
return 10+ch-'A';
else
return ch-'0';
}
}
程序正确运行,显示结果。
- 疯狂的母牛,对方程的求解,不要62(不吉利数字),回文串,进制转换以及空心三角形
- PHP文件上传问题总结——文件大小检测以及大文件上传处理
- 检测空值,以及会不会出现mapping类型不一致的问题
- 转: CRT检测内存泄漏技巧以及注意问题
- 目标检测 | SSD原理以及相关问题
- android检测手机是否有某个应用以及启动安装另一个应用的问题
- 递归的定义以及递归的示例(计算阶乘、计算斐波那契数、递归二分查找、回文串递归方法解决、汉诺塔问题、递归选择排序问题)
- 关于 chrome 上支付宝安全控件无法使用,以及检测不到数字证书的问题
- mysql的安装以及容易出现问题解决和安装成功检测
- 判断链表是否为回文串以及关于回文串问题的讨论
- HDU 4432 因子之和以及进制转换问题
- myeclipse10 下ssh框架搭建检测以及常见问题
- iOS10检查内存泄漏时出现的问题以及解决办法--Analyze检测的User-facing text should use localized
- 题目1208:10进制 VS 2进制(进制转换以及大数保存问题)
- smart发布中发现的weblogic/tomcat/resin的兼容性问题以及解决方案
- Android 版本更新(非热更新) 适配7.0更新 以及三星 note系列读取内存相关目录无权限问题
- java泛型(二)、泛型的内部原理:类型擦除以及类型擦除带来的问题
- es配置项解释以及脑裂问题
- Python下多线程编程遇到的问题以及解决
- 在GNOME的ubuntu桌面环境中安装KDE的方法以及常见问题