javase基础课程练习题(附多种解法答案)Java基础类型题
1. 反转⼀个只有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 Int();
int geW=inputNumber%10;
int shiW=inputNumber/10%10;
int baiW=inputNumber/100;
System.out.println(geW+""+shiW+""+baiW);
}
}
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 Int();
String strNumber=inputNumber+"";
System.out.println(strNumber.charAt(2)+""+strNumber.charAt(1)+""+strNumber.charAt(0)+"");
}
}
1.3 解法3 将字符串转换为char类型的数组
扩展解法,最实⽤的解法,不管输⼊的数字有多少位,都可以正常反向输出
Scanner scanner=new Scanner(System.in);
System.out.println("请输⼊⼀个三位数的整数:");
int Int();
char temArray[]= CharArray();
for(int i=0;i<temArray.length;i++){
System.out.print(temArray[temArray.length-1-i]);
}
}
}
2. 将⼀个字符由⼩写字母转换为⼤写字母
从控制台输⼊ 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 ();
System.out.UpperCase());
}
}
3. 从控制台输⼊⼀个字符串,由字母组成,转换后输出。
如果输⼊的是⼩写,就转换成⼤写。
如果输⼊的是⼤写,就转换成⼩写
例如输⼊:abCd ,控制台输⼊ ABcD
3.1 解法1
解题思路:将字符串转换成char类型的数组,将字符串中字母转换改为单个字符的转换。转换完成后重新组装。
涉及的知识点:String类的toCharArray()⽅法,数组遍历,⾃动类型转换。
System.out.println("请输⼊⼀个字符串:");
Scanner scanner = new Scanner(System.in);
String inputStr = ();
char[] tempArray = CharArray();
String switchStr = "";// 保存转换后的字符串
for (char singleCast : tempArray) {
if (singleCast >= 'A' && singleCast <= 'Z') {
String singleCastStr = singleCast + "";// ⾃动类型转换
// char+String=String类型
singleCastStr = LowerCase();// 转换成⼩写字母
switchStr += singleCastStr;// 转换后拼接
} else if (singleCast >= 'a' && singleCast <= 'z') {
String singleCastStr = singleCast + "";// ⾃动类型转换
// char+String=String类型
singleCastStr = UpperCase();// 转换成⼤写字母
switchStr += singleCastStr;// 转换后拼接
} else {
// 不是字母的,如符号,中⽂等
switchStr += singleCast;
}
}
System.out.println("转换后的值为:"+switchStr);
}
}
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 = ();
char[] tempArray = CharArray();
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);
}
}
}
}
// from:207 付谨
4. 输⼊三个整数x,y,z,请把这三个数由⼩到⼤输出。
例如输⼊:1,3,2 输出 1,2,3
5. 判断101-200之间有多少个素数,并输出所有素数。
6. 利⽤条件运算符的嵌套来完成此题:学习成绩>=90分的同学⽤A表⽰,60-89分之间的⽤B表⽰,60分以下的⽤C表⽰。
7. 输⼊⼀⾏字符,分别统计出其英⽂字母、空格、数字和其它字符的个数。
例如输⼊ Ab12 sd
输出字母:4,空格1个,数字2个,这⾥的数字按0到9算,12是1和2不是12
8. 打印出如下图案(菱形)
*
***
******
********
******
***
*
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();
}
}
}
*
***
*****
*******
*********
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(" ");
}
java网课推荐
for(int k=0;k<2*i+1;k++){
System.out.print("*");
}
System.out.println();
}
}
}
*
**
***
****
*****
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();
}
}
*
**
***
****
*****
****
***
**
*
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();
}
}
}