Java——第四章(数组和字符串)项目案例

本文探讨了Java中数组和字符串的实际应用。首先介绍如何处理二维数组,包括从键盘输入9个double类型数据并转换为int型。接着讨论了斐波那契数列的实现,计算出第30项的值。此外,还展示了如何生成并排序10个两位正整数,以及字符串操作,如将字符串中的大写字母转换为小写以及交换字符串首尾字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1。二维数组的应用,键盘输入9 个double类型数据,将数据转为int型。


import java.util.Scanner;

public class Demo07 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		double a[][]= new double [3][3];
		System.out.println("输入9个数");
		for(int i =1;i<=3;i++)
		{
			for(int j =1;j<=3;j++)
			{
				a[i-1][j-1] = sc.nextDouble();
			}
		}
		System.out.println("这些数为:");
		for(double[] b:a)
		{
			for(double c:b)
			System.out.print(c+" ");
		}
		System.out.println();
		int b[][]= new int[3][3];
		for(int i = 1;i<=3;i++)
		{
			for(int j =1;j<=3;j++){
				
				b[i-1][j-1] = (int) a[i-1][j-1];
			}
		}
		System.out.println("转为int数组数为:");
		for(int[] c:b)
		{
			for(int d:c)
			System.out.print(d+" ");
		}
	
	}

}


以上最后输出用的是foreach循环打印,输出语句同样可以用两个for循环遍历二维数组。


2.斐波那契数列

1 1 2 3 5 8.。。。。30数字是多少?


public class Demo01 {

	public static void main(String[] args) {

		/*
		 * 斐波那契数列 1+1+2+3+5+。。。。。
		 */
		int a[] = new int[30];
		a[0] = a[1] = 1;

		for (int j = 1; j <= a.length - 2; j++) {
			a[j + 1] = a[j] + a[j - 1];
		}
		System.out.println(a[29]);

		for (int b : a) {
			System.out.print(b + " ");
		}

	}

}


3.杨辉三角

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1



public class Demo08 {
	// 五子棋。。1024的逻辑
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a[][] = new int[10][10];
		for (int i = 0; i < 10; i++) {
			for (int j = 0; j < 10; j++) {
				if (j == 0 || i == j) {
					a[i][j] = 1;
				} else if ((j < i && j >= 1) && (i >= 2 && i < 10)) {
					a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
				} else {
					a[i][j] = 0;
				}

			}
		}
		for (int i = 0; i < 10; i++) {
			for (int j = 0; j <= i; j++)
				System.out.print(a[i][j] + "\t");

			System.out.println();
		}

	}

}


3.实现这样一个数组,一个顺时针递增。

1  2 3  4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9


public class Dem09 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		/*
		 * 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9
		 * 
		 */
		int a[][] = new int[5][5];
		for (int i = 0; i < 5; i++) {
			for (int j = 0; j < 5; j++) {
				if (i == 0) {
					a[i][j] = j + 1;
				}
				if (i == 1 && j <= 3) {
					a[i][j] = j + 16;
				}
				if ((i == 2) && (j == 1 || j == 2)) {
					a[i][j] = j + 23;
				}
			}
		}

		for (int i = 0; i < 5; i++) {
			for (int j = 0; j < 5; j++) {
				if (j == 4) {
					a[i][j] = 5 + i;

				}
				if ((j == 3) && (i >= 1 && i <= 3)) {
					a[i][j] = 18 + i;
				}
			}
		}

		for (int i = 0; i < 5; i++) {
			for (int j = 0; j < 5; j++) {
				if (i == 4)
					a[i][j] = 13 - j;
				if ((i == 3) && (j == 1 || j == 2 || j == 3)) {
					a[i][j] = 24 - j;
				}
			}
		}

		for (int i = 0; i < 5; i++) {
			for (int j = 0; j < 5; j++) {
				if ((j == 0) && (i >= 1))
					a[i][j] = 17 - i;
				if ((j == 2) & (i == 2))
					a[i][j] = 27 - i;
				if ((j == 2) & (i == 3))
					a[i][j] = 25 - i;

			}
		}
		for (int i = 0; i < 5; i++) {
			for (int j = 0; j < 5; j++) {
				System.out.print(a[i][j] + "\t");

			}
			System.out.println();

		}

	}

}



4.判断输入的是否是邮箱地址



import java.util.Scanner;

public class Demo13 {

	/*
	 * 判断输入的是否是邮箱地址
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		while (true) {
			Scanner sc = new Scanner(System.in);
			System.out.println("输入邮箱地址:");
			String s = sc.next();
			// boolean bo =s.indexOf("@")!=-1;
			if ((s.contains("@")) && s.endsWith(".com") && (s.indexOf(".") - s.indexOf("@") > 1)
					&& s.indexOf("@") > 0) {
				System.out.println(s + "为邮箱地址");
			} else
				System.out.println("邮箱地址输入有误!");
		}
	}
}



5.首先让计算机随机产生出10个两位正整数,然后按照从小到大的次序显示出来。


import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class Demo14 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//1.首先让计算机随机产生出10个两位正整数,然后按照从小到大的次序显示出来。
		int a[] = new int[10];
		Scanner sc = new Scanner(System.in);
		Random r = new Random();
		System.out.println("输入十个数:");
		for (int i = 0; i < a.length; i++) {
			a[i]= r.nextInt(90)+10;
		}
		
		Arrays.sort(a);
		
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i]+" ");
		}
		for (int i = 0; i < a.length; i++) {
			for(int j = 0;j< a.length-i-1;j++)
			{
				
				if(a[j]>a[j+1])
				{
					int temp = a[j];
					a[j] = a[j+1];
					a[j+1] = temp;
				}
			}
		}
		System.out.println("排序后:");
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i]+" ");
		}
 }
}
	

6.从键盘上输入4行4列的一个实数矩阵到一个二维数组中,然后求出主对角线上元素之乘积以及副对角线上元素之乘积。


import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class Demo14 {

	public static void main(String[] args) {

System.out.println("输入4*4的数组");
		int b [][] = new int [4][4];
		for (int i = 0; i < 4; i++) {
			for (int j = 0; j < 4; j++) {
				b[i][j]= sc.nextInt();
			}
		}
		int ji =1;
		for (int i = 0; i < b.length; i++) {
			for (int j = 0; j < b.length; j++) {
				if(i == j){
					ji = ji*b[i][j];
				}
				
			}
		}
		System.out.println("主对角线成绩为:"+ji);
		
		int ji2 =1;
		for (int i = 0; i < 4; i++) {
			for (int j = 0; j <4; j++) {
					if(i+j==3)
					ji2 = ji2*b[i][j];
				
			}
		}
		System.out.println("副对角线成绩为:"+ji2);}}


7.输入字符串,大写到小写的转换,输出前后字符调换的结果。

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class Demo14 {

	public static void main(String[] args) {
String s = sc.next();
		String s1 = s.toLowerCase();
//		System.out.println("大写变小写:"+s1);
		String s2 = s1.toUpperCase();
//		System.out.println("小写变大写:"+s2);
		char[] c = s.toCharArray();
		for (int i = 0; i < c.length/2; i++) {
			int oldindex = i;
			int newindex = c.length-1-i;
			char temp = c[oldindex];
			c[oldindex] = c[newindex];
			c[newindex] = temp;
			
			
		}
		System.out.println("交换后的字符串");
		String str =new String(c);
		System.out.println(c);
	
	}

}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值