黑马程序员技术交流社区
标题:
今晚阻碍我睡觉的题,求解,怎么做
[打印本页]
作者:
杨立考
时间:
2012-9-25 23:09
标题:
今晚阻碍我睡觉的题,求解,怎么做
本帖最后由 屈俊材 于 2012-9-26 07:56 编辑
从键盘输入一个
5
位数整数,判断其个位是否与万位相等并且十位是否与千位相等。
作者:
明光照
时间:
2012-9-25 23:16
import java.util.Scanner;
public class Test_2 {
public static void main(String args[]){
Scanner Reader=new Scanner(System.in);
String s=Reader.next();
if(s.charAt(0)==s.charAt(4)&&s.charAt(1)==s.charAt(3)){
System.out.println("符合要求");
}
else{
System.out.println("不符合要求");
}
}
}
作者:
程振
时间:
2012-9-25 23:17
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int value;
// 假的输入是有效的5位数
while (scanner.hasNextInt()) {
value = scanner.nextInt();
int a = value / 10000;
int b = (value / 1000) % 10;
int d = (value % 1000) / 100;
int e = value % 10;
if(a==e && b==d){
System.out.println(true);
}else{
System.out.println(false);
}
}
scanner.close();
}
}
复制代码
作者:
杨立考
时间:
2012-9-25 23:26
还是有点不解,能加注释吗?
作者:
张小龙
时间:
2012-9-25 23:27
这里给出实现方法,假设传入的是一个五位数:
public int[] method(int num){
//假设传入的是一个正确的五位数,然后返回一个两个长度的整形数组
int[] array=new int[2];
int numWan=num/10000;
int numGe=num%10;
//这里用四个变量定义了这个五位数的万,千,十,个位数的数字
int numQian=num/1000-numWan*10;
int numShi=(num%100)/10;
if(numWan==numGe){
//判断万位与各位
array[0]=1;
}
else
array[0]=0;
if(numQian==numShi){
//判断十位与千位是否相等
array[1]=1;
}
else
array[1]=0;
return array;
//array数组的array[0]为1,代表万位与各位相等,0则代表不相等,array[1]为1代表千位与十位相等 0则代表不相等
}
希望能对楼主有帮助
作者:
燃烧端午
时间:
2012-9-25 23:36
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入五位数:");
int num = sc.nextInt();
String numStr = String.valueOf(num);
String numStrArr[] = numStr.split("");
if (numStrArr[1].equals(numStrArr[5])
&& numStrArr[2].equals(numStrArr[4])) {
System.out.println("是");
} else {
System.out.println("不是");
}
}
复制代码
作者:
吴兵
时间:
2012-9-25 23:43
import java.util.Scanner;
public class Test
{
public static void main(String[] args)
{
//从键盘录入5位数
Scanner in= new Scanner(System.in);
String str = in.nextLine();
//将字符串转换为字符数组
char[] ch=str.toCharArray();
//取出数组里面的每个数,并将字符转换为基本数据类型
int a=Integer.parseInt(String.valueOf(ch[0]));//万位
int b=Integer.parseInt(String.valueOf(ch[1]));//千位
//int c=Integer.parseInt(String.valueOf(ch[2]));
int d=Integer.parseInt(String.valueOf(ch[3]));//十位
int e=Integer.parseInt(String.valueOf(ch[4]));//个位
if(a==b&&d==e)
{
System.out.println("相等!");
}
else
System.out.println("不相等!");
}
}
复制代码
作者:
杨卫腾
时间:
2012-9-25 23:47
import java.util.Scanner;
public class Demo {
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
int value;
//假的输入是有效的5位数
while (scanner.hasNextInt()) {
value = scanner.nextInt();
int w = value / 10000;//万位
int q = (value / 1000) % 10;//千位
int s = (value / 10) % 10;//十位
int g = value % 10;//个位
//想要那个位的数据,先求模再求余;
if(w==g && q==s){
System.out.println(true);
break;
}else{
System.out.println(false);
}
}
scanner.close();
}
}
复制代码
这是我修改那个哥们的代码,这个应该就行了,这个方法挺简单的。
作者:
杨立考
时间:
2012-9-25 23:53
谢谢大家 ,OK了
作者:
王海宇
时间:
2012-9-26 07:26
楼主这种问题也可以考虑用正则表达式来做,一行代码就解决了。例如:
//待验证的整数
String input = "12221";
//通过正则表达式验证
System.out.println(input.matches("(\\d)(\\d)\\d\\2\\1"));
//输出结果将会是true
复制代码
如果对正则表达式不熟悉的话,可以参考韩顺平老师的html+css+js视频教程里面对正则表达式的讲解
作者:
IceLoveInFire丶
时间:
2016-9-26 22:05
正则 :
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String regex = "\\d\\d\\d\\2\\1";r
boolean flag = str.matches(str);
一个好的正则可以省去1000行代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2