1.判字符串arr和反转过来的结果是否一样
/**
* 判断字符串和反字符串是否一样(例如:arar 反转就是arar)
*/
public class Test1 {
public static void main(String args[]){
Scanner scanner=new Scanner(System.in);
System.out.println("请输入字符串:");
String string=scanner.next();
int count=0;
StringBuffer stringBuffer=new StringBuffer(string);
stringBuffer.reverse();
int count1=string.length();
for (int i=0;i<count1/2;i++){
if (string.charAt(i)==stringBuffer.charAt(i)){
count++;
}
}
if (count == count1/2){
System.out.println("是合数");
}else {
System.out.println("不是合数");
}
}
}
2.用户输入数到数组中,在通过排序输出来
public class Test2 {
public static void main(String args[]){
Scanner scanner=new Scanner(System.in);
System.out.println("请输入整数个数:");
int count=scanner.nextInt();
int[] score=new int[count];
for (int i=0;i<score.length;i++){
System.out.println("请输入:");
int shu=scanner.nextInt();
score[i]=shu;
}
for (int j=0;j<score.length;j++){
System.out.println(score[j]);
}
System.out.println(java.util.Arrays.toString(score));
for (int i=0;i<score.length;i++){
for (int j=i+1;j<score.length;j++){
if (score[i]>score[j]){
int temp=score[j];
score[j]=score[i];
score[i]=temp;
}
}
}
System.out.println("排列之后的数组"+Arrays.toString(score));
}
}
3.输入字符串,判断其中小写字母个数、大写字母个数、数字个数、其他字符个数
public class Test2 {
public static void main(String args[]){
Scanner scanner=new Scanner(System.in);
System.out.println("请输入字符:");
String st=scanner.next();
int count1=0;//数字
int count=0;//小写字母
int count2=0;//大写字母
int count3=0;//其他字符
char c;
for (int i=0;i<st.length();i++){
c=st.charAt(i);
if (c>='a'&&c<='z'){
count++;
}else if (c>='A'&&c<='Z'){
count2++;
}else if (c>='0'){
count1++;
}else {
count3++;
}
}
System.out.println("数字:"+count1);
System.out.println("小写:"+count);
System.out.println("其他:"+count3);
System.out.println("大写:"+count2);
}
}
4.阶乘
public class Test2 {
public static void main(String args[]){
System.out.println(tc(5));
}
public static long tc(int t){
if (t==1){
return 1;
}
if (t<=0){
return 0;
}
return t*tc(t-1);
}
}
5.四个数组成不同的四位数,有多少个
public class Test2 {
public static void main(String args[]){
int i,j,k,t;
int count=0;
for (i=0;i<4;i++){
for (j=0;j<4;j++){
for (k=0;k<4;k++){
for (t=0;t<4;t++){
if (i !=j && i!=k&&i!= t&&j!=k&&j!=t&&k!=t){
count++;
System.out.println(""+i+""+j+""+k+""+t);
System.out.println(count);
}
}
}
}
}
}
}
6.map遍历
Map<Integer,String> map=new HashMap<Integer, String>();
map.put(1,"a");
map.put(2,"b");
map.put(3,"c");
// System.out.println(map.size());
for (Integer in:map.keySet()){
String str=map.get(in);
System.out.println(in+":"+str);
}
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "a");
map.put(2, "b");
map.put(3, "ab");
map.put(4, "ab");
for (Map.Entry<Integer,String> entry:map.entrySet()){
System.out.println(entry.getKey()+":"+entry.getValue());
}
7.list、set、map区别
(1)list:有序不唯一
(2)set:无序唯一
(3)map:键与值(key:value)
8.由用户输入若干个数,判断正数和负数,直到用户输入的数为0,才结束
int a=0; //判断正数个数
int b=0; //判断负数个数
Scanner scanner=new Scanner(System.in);
for (;;){
System.out.println("请输入整数:");
int count=scanner.nextInt();
if (count>0){
a++;
}else if (count<0){
b++;
}else {
break;
}
}
System.out.println("正数:"+a);
System.out.println("负数:"+b);
9.判断当前日期是当年第几天
Scanner scannner=new Scanner(System.in);
// System.out.println("请输入年份:");
// int year=scannner.nextInt();
// System.out.println("请输入月份:");
// int mouth=scannner.nextInt();
// System.out.println("请输入日期:");
// int day=scannner.nextInt();
// int sum=0;
// switch (mouth){
// case 12:
// sum +=30;
// case 11:
// sum +=31;
// case 10:
// sum +=31;
// case 9:
// sum +=31;
// case 8:
// sum +=31;
// case 7:
// sum +=31;
// case 6:
// sum +=31;
// case 5:
// sum +=31;
// case 4:
// sum +=31;
// case 3:
// sum +=31;
// case 2:
// if ((year % 4==0&&year%100 !=0)||(year%400==0)){
// sum+=29;
// }else {
// sum +=28;
// }
//
// case 1:
// sum +=31;
// }
// sum +=day;
// System.out.println(sum);
10.for打印三角形
for (int i=0;i<=4;i++){
for (int j=0;j<4-i;j++){
System.out.print(" ");
}
for (int j=0;j<=i;j++){
System.out.print("*");
}
for (int j=0;j<i;j++){
System.out.print("*");
}
System.out.println();
}
for (int i=0;i<4;i++){
for (int j=0;j<=i;j++){
System.out.print(" ");
}
for (int j=0;j<4-i;j++){
System.out.print("*");
}
for (int j=0;j<3-i;j++){
System.out.print("*");
}
System.out.println();
}
11.九九乘法表
for (int i=1;i<=9;i++){
for (int j=1;j<=i;j++){
System.out.print(i +"*"+ j +"="+ (i*j)+"\t" );
}
System.out.println();
}
12.100以内的质数
boolean reuslt=false;
long start=System.currentTimeMillis();
for (int i=1;i<10000;i++){
for (int j=2;j<i;j++){
if (i % j==0){
reuslt=true;
}
}
if(reuslt==false){
System.out.println(i);
}
reuslt=false;
}
long end=System.currentTimeMillis();
System.out.println("需要时间:"+(end-start));
优化之后:
boolean reuslt=false;
long start=System.currentTimeMillis();
for (int i=1;i<10000;i++){
for (int j=2;j<=Math.sqrt(i);j++){
if (i % j==0){
reuslt=true;
break;
}
}
if(!reuslt){
System.out.println(i);
}
reuslt=false;
}
long end=System.currentTimeMillis();
System.out.println("需要时间:"+(end-start));
12.continue和break区别:
for (int i=0;i<10;i++){
if (i %4==0){
continue;
}
System.out.println(i);
}
continue:表示是4的倍数直接结束就不输出当前值,
break:表示只有程序输出到4的第一个倍数值,程序就直接结束
13.完数(等于其所有因子的和;因子:除去这个是本身正的约束)
例如(6=1+2+3)
int soulte=0;
boolean result=false;
for (int i=1;i<=1000;i++){
for (int j=1;j<i;j++){
if (i % j==0){
soulte+=j;
}
}
if (i ==soulte){
System.out.println(i);
}
soulte=0;
}
14.数组一旦初始化,其长度就不能改变(合并数组)
int[] a=new int[]{10,20,30};
int[] b=new int[]{40,50,60};
int[] c=new int[a.length+b.length];
for (int i=0;i<a.length;i++){
c[i]=a[i];
}
for (int j=0;j<b.length;j++){
c[a.length+j]=b[j];
}
for (int k=0;k<c.length;k++){
System.out.println(c[k]);
}
15.八大基本数据类型默认值
byte short int long -->0
float、double -->0.0
char -->空格
boolean -->false
Integer --》null
class PritiMave{
boolean[] booleans=new boolean[3];
}
public class Test {
public static void main(String args[]){
PritiMave pritiMave=new PritiMave();
for (int i=0;i<pritiMave.booleans.length;i++){
System.out.println(pritiMave.booleans[i]);
}
16.利用用户输入的数放入数组中,进行排序,获取最大值,在判断数组中各个数与最大数的距离
System.out.println("请输入数组个数:");
Scanner scanner=new Scanner(System.in);
int count=scanner.nextInt();
int[] score=new int[count];
for (int i=0;i<score.length;i++){
System.out.println("请输入第"+i+"个学生成绩:");
float score1=scanner.nextFloat();
score[i]=(int)score1;
}
for (int j=0;j<score.length;j++){
System.out.println(score[j]);
}
int maxscore=0;
for (int j=0;j<score.length;j++){
if (score[j]>maxscore){
maxscore=score[j];
}
for (int k=j+1;k<score.length;k++){
if (score[j]>score[k]){
int temp=score[j];
score[j]=score[k];
score[k]=temp;
}
}
}
System.out.println(Arrays.toString(score));
System.out.println("最大数为"+maxscore);
for (int i=0;i<score.length;i++){
if (maxscore-10<score[i]){
System.out.println(score[i]+"D");
}else if (maxscore-20<score[i]){
System.out.println(score[i]+"C");
}else {
System.out.println(score[i]+"B");
}
}
17.二维数组及遍历
int[][] score=new int[4][4];
System.out.println(score.length); //数组长度
System.out.println(score[0].length); //数组元素长度
int[][] score=new int[][]{{1,2,3},{2,3,4}};
// System.out.println(score.length); //数组长度
// System.out.println(score[0].length); //数组元素长度
for (int i=0;i<score.length;i++){
for (int j=0;j<score[i].length;j++){
System.out.println(score[i][j]+" ");
}
System.out.println();
}
int[][] score=new int[][]{{1,2,3,4},{2,3,4,5},{3,4,5,6}};
int num=0;
for (int i=0;i<score.length;i++){
for (int j=0;j<score[i].length;j++){
num +=score[i][j];
System.out.println(score[i][j]);
}
System.out.println();
}
System.out.println("总和:"+num);
18.数组异常
19.一维数组和二维数组的转换
20.杨辉三角
int[][] score=new int[12][];
// for (int i=0;i<score.length;i++){
// score[i]=new int[i+1];
// }
// for (int i=0;i<score.length;i++){
// for (int j=0;j<score[i].length;j++){
// score[i][0]=score[i][i]=1;
// if (i>1 && j>0 && j<i){
// score[i][j]=score[i-1][j]+score[i-1][j-1];
// }
// System.out.print(score[i][j]+"\t");
//
// }
// System.out.println();
// }
21。把用户输入的数放入数组中,进行排序,查询最大值和最小值、和、平均数
System.out.println("请输入数组个数:");
Scanner scanner=new Scanner(System.in);
int count=scanner.nextInt();
int[] score=new int[count];
for (int i=0;i<score.length;i++){
System.out.println("请输入第"+i+"个数");
int shu=scanner.nextInt();
score[i]=shu;
}
int max=0;
int min=0;
int sum=0;
for (int i=0;i<score.length;i++){
for (int j=0;j<score.length;j++){
if (score[i]>score[j]){
int temp=score[i];
score[i]=score[j];
score[j]=temp;
}
}
}
System.out.println(Arrays.toString(score));
for (int i=0;i<score.length;i++){
max=score[0];
min=score[score.length-1];
sum+=score[i];
}
System.out.println("最大:"+max+"最小"+min+"和"+sum+"平均数:"+((float)sum/score.length));