Java基础类型题
 
反转一个只有3位数的整数。
 
 从控制台输入321,输出123
 
1.1 解法1 分别求出每一位的值,然后倒序输出
 
 正常思维解法,分别取出个位,十位,百位的值,然后输出
 

import java.util.Scanner;
public class Demo1 {
 public static void main(String[] args) {
  Scanner scanner=new Scanner(System.in);
  System.out.println("请输入一个三位数的整数:");
  int inputNumber=scanner.nextInt();
  int geW=inputNumber%10;
  int shiW=inputNumber/10%10;
  int baiW=inputNumber/100;
  System.out.println(geW+""+shiW+""+baiW);
 }
}
123456789101112
1.2 解法2 使用charAt()方法
 
 用到了字符串的charAt()方法,获取字符串中对应下标位置的单个字符。
 

import java.util.Scanner;
public class Demo1 {
 public static void main(String[] args) {
  Scanner scanner=new Scanner(System.in);
  System.out.println("请输入一个三位数的整数:");
  int inputNumber=scanner.nextInt();
  String strNumber=inputNumber+"";
  System.out.println(strNumber.charAt(2)+""+strNumber.charAt(1)+""+strNumber.charAt(0)+"");
 }
}
12345678910
1.3 解法3 将字符串转换为char类型的数组
 
 扩展解法,最实用的解法,不管输入的数字有多少位,都可以正常反向输出
 

import java.util.Scanner;
public class Demo1 {
 public static void main(String[] args) {
  Scanner scanner=new Scanner(System.in);
  System.out.println("请输入一个三位数的整数:");
  int inputNumber=scanner.nextInt();
  char temArray[]= strNumber.toCharArray();
  for(int i=0;i<temArray.length;i++){
   System.out.print(temArray[temArray.length-1-i]);
  }
 }
}
123456789101112
将一个字符由小写字母转换为大写字母
 
 从控制台输入 a ,输出A 直接调用字符串的toUpperCase()
 

import java.util.Scanner;
public class Demo2 {
 public static void main(String[] args) {
  Scanner scanner=new Scanner(System.in);
  System.out.println("请输入一个字符:");
  String a=scanner.next();
  System.out.println(a.toUpperCase());
 }
}
123456789
从控制台输入一个字符串,由字母组成,转换后输出。
 
 如果输入的是小写,就转换成大写。 如果输入的是大写,就转换成小写 例如输入:abCd ,控制台输入 ABcD
 
3.1 解法1
 
 解题思路:将字符串转换成char类型的数组,将字符串中字母转换改为单个字符的转换。转换完成后重新组装。 涉及的知识点:String类的toCharArray()方法,数组遍历,自动类型转换。
 

import java.util.Scanner;
public class Demo3 {
 public static void main(String[] args) {
  System.out.println("请输入一个字符串:");
  Scanner scanner = new Scanner(System.in);
  String inputStr = scanner.next();
  char[] tempArray = inputStr.toCharArray();
  String switchStr = "";// 保存转换后的字符串
  for (char singleCast : tempArray) {
   if (singleCast >= 'A' && singleCast <= 'Z') {
    String singleCastStr = singleCast + "";// 自动类型转换
              // char+String=String类型
    singleCastStr = singleCastStr.toLowerCase();// 转换成小写字母
    switchStr += singleCastStr;// 转换后拼接
   } else if (singleCast >= 'a' && singleCast <= 'z') {
    String singleCastStr = singleCast + "";// 自动类型转换
    // char+String=String类型
    singleCastStr = singleCastStr.toUpperCase();// 转换成大写字母
    switchStr += singleCastStr;// 转换后拼接
   } else {
    // 不是字母的,如符号,中文等
    switchStr += singleCast;
   }
  }
  System.out.println("转换后的值为:"+switchStr);
 }
}
123456789101112131415161718192021222324252627
3.2 解法2
 
 解题思路,转换成单个字符串,然后通过Ascii码转换进行大小写互转。
 

import java.util.Scanner;
public class Demo3 {
 public static void main(String[] args) {
  System.out.println("请输入一个字符串:");
  Scanner scanner = new Scanner(System.in);
  String inputStr = scanner.next();
  char[] tempArray = inputStr.toCharArray();
  for (char singleCast : tempArray) {
   if (singleCast >= 'A' && singleCast <= 'Z') {
    System.out.print((char) (singleCast +32));
   } else if (singleCast >= 'a' && singleCast <= 'z') {
    System.out.print((char) (singleCast -32));
   } else {
    // 不是字母的,如符号,中文等
    System.out.print(singleCast);
   }
  }
 }
}
1234567891011121314151617181920
输入三个整数x,y,z,请把这三个数由小到大输出。
 
 例如输入:1,3,2 输出 1,2,3
 
判断101-200之间有多少个素数,并输出所有素数。利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。输入一行字符,分别统计出其英文字母、空格、数字和其它字符的个数。
 
 例如输入 Ab12 sd 输出字母:4,空格1个,数字2个,这里的数字按0到9算,12是1和2不是12
 
打印出如下图案(菱形)
   *
  ***
 ******
********
 ******
  ***
   *
1234567
package com.lvan.demo8;
public class demo8 {
 public static void main(String[] args) {
  for(int i=0;i<5;i++){
   for(int j=0;j<5-i;j++){
    System.out.print(" ");
   }
   for(int k=0;k<2*i+1;k++){
    System.out.print("*");
   }
   System.out.println();
  }
  for(int i=1;i<5;i++){
   for(int k=0;k<i+1;k++){
    System.out.print(" ");
   }
   for(int j=11;j>2*i+2;j--){
    System.out.print("*");
   }
   System.out.println();
  }
 }
}

 

12345678910111213141516171819202122232425
    *
   ***
  *****
 *******
*********
12345
package com.lvan.demo8;
public class demo8 {
 public static void main(String[] args) {
  for(int i=0;i<5;i++){
   for(int j=0;j<5-i;j++){
    System.out.print(" ");
   }
   for(int k=0;k<2*i+1;k++){
    System.out.print("*");
   }
   System.out.println();
  }
 }
}

 

123456789101112131415
*
**
***
****
*****
12345
public class App {
 public static void main(String[] args) {
  for(int i=0;i<6;i++){
   for(int k=0;k<i;k++){
    System.out.print("*");
   }
   System.out.println();
  }
  System.out.println();
 }
}

1234567891011
*
**
***
****
*****
****
***
**
*
123456789
package com.lvan.demo8;
public class demo8 {
 public static void main(String[] args) {
  for(int i=0;i<5;i++){
   for(int k=0;k<2*i+1;k++){
    System.out.print("*");
   }
   System.out.println();
  }
  for(int i=1;i<5;i++){
   for(int j=11;j>2*i+2;j--){
    System.out.print("*");
   }
   System.out.println();
  }
 }
}

 

12345678910111213141516171819
     *
    *  *
   *    *
  *      *
 *        *
  *      *
   *    *
    *  *
      *
123456789
package com.lvan.demo8;
import sun.tools.jar.resources.jar;
public class demo8 {
 public static void drawUp(){
  for(int i=0;i<5;i++){
   for(int j=0;j<(10-i);j++){
    System.out.print(" ");
   }
   System.out.print("*");
   for(int j=0;j<2*(i-1)+1;j++){
    System.out.print(" ");
   }
   if(i!=0){
    System.out.print("*");
   }
   System.out.println();
  }
 }
 public static void drawDown(){
  for(int i=0;i<=5;i++){
   for(int k=0;k<5+i;k++){
    System.out.print(" ");
   }
   System.out.print("*");
   for(int k=0;k<2*(5-i-1)+1;k++){
    System.out.print(" ");
   }
   
   if(i!=5){
    System.out.print("*");
   }
   System.out.println();
  }
 }
 public static void main(String[] args) {
  drawUp();
  drawDown();
 }
}

 

123456789101112131415161718192021222324252627282930313233343536373839404142
给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
 
 使用if来判断,分别求,最易理解,代码较多
 
package com.test.demo;
import java.util.Scanner;
public class App {
 public static void main(String[] args) {
  System.out.println("请输入一个不多于五位的整数:");
  Scanner scanner=new Scanner(System.in);
  int number=scanner.nextInt();
  if(number>=10000){
   System.out.println("该数为5位数");
  }else if(number>=1000){
   System.out.println("该数为4位数");
  }else if(number>=100){
   System.out.println("该数为3位数");
  }else if(number>=10){
   System.out.println("该数为2位数");
  }else if(number>=0){
   System.out.println("该数为1位数");
  }else{
   System.out.println("输入错误");
  }
  
  if(number>=10000){
   System.out.print(number%10 );
   number=number/10;
  }
  if(number>=1000){
   System.out.print(number%10);
   number=number/10;
  }
  if(number>=100){
   System.out.print(number%10+"--");
   number=number/10;
  }
  if(number>=10){
   System.out.print(number%10);
   number=number/10;
  }
  if(number>=1){
   System.out.print(number%10);
   number=number/10;
  }
 }
}

 

1234567891011121314151617181920212223242526272829303132333435363738394041424344
简化1:将数字转化为字符串,调用tochararray方法将字符串转化为单字符数组,获取数组长度即为输入的数字的位数。再通过循环求余每次输出最后一位数。简化后便不受位数限制,可以接收用户任意输入的数字。
package com.test.demo;
import java.util.Scanner;
public class App {
 public static void main(String[] args) {
  System.out.println("请输入一个不多于五位的整数:");
  Scanner scanner=new Scanner(System.in);
  int number=scanner.nextInt();
  String numberStr=number+"";
  int n=numberStr.toCharArray().length;
  System.out.println("该数为"+n+"位数");
  for(int i=0;i<n;i++){
   System.out.print(number%10);
   number=number/10;
  }
 }
}

 

1234567891011121314151617
解法2:直接通过转化成单字符来进行输入和输出,不受输入内容的限制,即可输入其他的非数字字符。
package com.test.demo;
import java.util.Scanner;
public class App {
 public static void main(String[] args) {
  System.out.println("请输入一个不多于五位的整数:");
  Scanner scanner=new Scanner(System.in);
//  int number=scanner.next();
  String numberStr=scanner.next();
  char[] numberStrArray=numberStr.toCharArray();
  int n=numberStrArray.length;
  System.out.println("该数为"+n+"位数");
  for(int i=0;i<n;i++){
   System.out.print(numberStrArray[n-i-1]);
  }
 }
}

 

1234567891011121314151617
求一个3*3矩阵对角线元素之和。
 
 3*3 矩阵,即为一个3行3列的二维数组。
 
package com.test.demo;
import java.util.Random;
import java.util.Scanner;
public class App {
 public static void main(String[] args) {
  int [][] number=new int[3][3];
  for(int i=0;i<3;i++){
   for(int k=0;k<3;k++){
    number[i][k]=new Random().nextInt(50);
    System.out.print(number[i][k]+" ");
   }
   System.out.println();
  }
  int sum=0;
  for(int i=0;i<3;i++){
   for(int k=0;k<3;k++){
    if(i==k){
     sum+=number[i][k];
    }
   }
  }
  System.out.println("和为"+sum);
 }
}

 

1234567891011121314151617181920212223242526
输出:
 
 4 37 21 4 42 3 9 21 47 和为93 上述为左上到右下的对角线的求和,左下到右上感兴趣的可以做一下评论区留言。
 
 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。  将一个数组逆序输出。  取一个大于7位的整数a从右端开始的4~7位。
  输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
计算字符串中子串出现的次数。  有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩并输出。  编写程序,从键盘输入一个 0~99999 之间的任意数,判断输入的数是几位数?  用 while 循环,计算 1~200 之间所有 3 的倍数之和。  已知 XYZ+YZZ=532,其中,X、Y、Z 为数字,编程求出 X、Y 和 Z 的值。  写一个猜拳游戏,从控制台输入石头、剪刀、布,后台随机生成对应和输入的做比较,看看谁能赢,输,和平局。  打印出999以内所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。(例如: 153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。)  将一个正整数分解质因数。例如:输入90,打印出90=233*5  有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?  一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?(完全平方数 :如果一个正整数 a 是某一个整数 b 的平方 .0也是完全平方数)、  输出9*9口诀。  猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天 剩下的一半零一个。 到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。  有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。  一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。完数的意思是将所有因数加起来的和等于这个数.比如28= 1+2+4+7+14
 
 
想要实现自己的开发梦?可点击http://www.gtalent.cn/exam/interview/gtMJXE1o5daeu7qx进入智一面进行编程训练