目的:
(1)掌握数组的声明、创建及初始化;
(2)掌握字数组的常用操作:
(3)掌握字符串的声明、创建;
(4)掌握字符串的常用操作:
【实验目的】
(1) 掌握数组的声明创建;
(2) 掌握数组的初始化;
(3) 掌握数组常用的操作;
【实践1内容】
打印数组元素
该程序应提示用户输入几个整数,将它们存储到数组中,然后以向前和向后的顺序打印出这些整数。 完成程序,使其正常运行。 使用数组使程序足够灵活,无论用户想要多少个整数,它都可以工作。
运行示例如下:
你要输入多少个数据? 4
请输入一个整数: 12
请输入一个整数: 8
请输入一个整数: -2
请输入一个整数: 39
正向顺序:
12
8
-2
39
逆向顺序:
39
-2
8
12
import java.util.Scanner;
public class PrintArray {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//输入数据
System.out.println("请输入整数的个数:");
int n = sc.nextInt();
//1、声明数组
int array[];
//2、创建数组
array = new int[n];
//3、数组初始化,使用输入值初始化
for (int i = 0; i < array.length; i++) {
System.out.print("请输入一个整数:");
array[i] = sc.nextInt();
}
//4、 引用数组元素,打印数组元素
//4.1正向打印
System.out.println("正向顺序:");
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
//4.2逆向打印
System.out.println("逆向顺序:");
for (int i = array.length-1;i >= 0; i--) {
System.out.println(array[i]);
}
sc.close();
}
}
某系统注册时,要求设定的密码至少要由英文字符、数字和下划线组成,密码长度至少6位。请编写一个Java应用程序实现对该密码的验证。如果密码不符合要求,请给予适当的提示,诸如“密码至少要由英文字符、数字和下划线组成”、“密码长度至少6位”等。
提示:
int length( ):返回字符串的长度
char charAt(int index):返回字符串中index位置上的字符
import java.util.Scanner;
public class StringTask02 {
public static void main(String[] args) {
// 输入密码
Scanner sc = new Scanner(System.in);
System.out.println("请输入您设置的密码:");
String mima = sc.next();
//密码验证
if (mima.length() >= 6) {
//判断组成成分
boolean havaChar = false;//有没有字符
boolean havaDig = false;//有没有数字
boolean hava_ = false;//有没有下划线
for (int index = 0; index < mima.length(); index++) {
char ch = mima.charAt(index);
if (Character.isLetter(ch)) {//相当于ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z'
havaChar = true;//有字母
}else if (Character.isDigit(ch)) {//相当于ch >= '0' && ch <= '9'
havaDig = true;//有数字
}else if (ch == '_') {
hava_ = true;//有下划线
}
if (havaChar && havaDig && hava_) {
break;
}
}
if (havaChar && havaDig && hava_) {
System.out.println("密码设置成功!");
}else {
System.out.println("密码需要包含字母、数字和下划线三个成分!");
}
}else {//长度不符合要求
System.out.println("密码长度至少6位!");
}
sc.close();
}
}
杨辉三角形,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。二项式定理与杨辉三角形是一对天然的数形趣遇,它把数形结合带进了计算数学。求二项式展开式系数的问题,实际上是一种组合数的计算问题。用系数通项公式来计算,称为“式算”;用杨辉三角形来计算,称作“图算”。其实,中国古代数学家在数学的许多重要领域中处于遥遥领先的地位。中国古代数学史曾经有自己光辉灿烂的篇章,而杨辉三角的发现就是十分精彩的一页。杨辉 三角示例如下:
通过二维数组实现杨辉三角形前N行的求值并打印输出。
import java.util.Scanner;
public class YangHuiSanJiao {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要打印的杨辉三角行数:");
final int N = sc.nextInt();
//1、声明一个数组
int [][] yh;
//2、创建数组对象
yh = new int[N][];
for (int i = 0; i < yh.length; i++) {
yh[i] = new int[i+1];//单独为每一行分配一个长度
}
//3、数组的初始化
for (int i = 0; i < yh.length; i++) {//控制行下标
for (int j = 0; j < yh[i].length; j++) {//控制列下标
if (j == 0 || j == yh[i].length-1) {//第一列或者最后一列
yh[i][j] = 1;//第一列或者最后一列的值为1
}else {//除第一列和最后一列的其它数组元素
yh[i][j] = yh[i-1][j] + yh[i-1][j-1];
}
}
}
//4、打印输出杨辉三角形
for (int i = 0; i < yh.length; i++) {
for (int j = 0; j < yh[i].length; j++) {
System.out.print(yh[i][j]+"\t");
}
System.out.println();//换行
}
sc.close();
}
}
所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的。比如"level" 、 “aaabbaaa”
题目:判断一个字符串是否为回文
编写应用程序实现:接受键盘输入的字符串,并判断该字符串是否回文。
import java.util.Scanner;
public class StringTask03 {
public static void main(String[] args) {
// 输入字符串
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String s = sc.next();
//判断是否同文
//1、方法1
boolean isHuiWen = true;//假设是回文串
for (int index = 0; index < s.length()/2; index++) {
if (s.charAt(index) != s.charAt(s.length()-1-index)) {//对称位置的字符不相等
isHuiWen = false;//不是回文串
break;
}
}
//输出结果
if (isHuiWen) {
System.out.println(s+"是回文串!");
}else {
System.out.println(s+"不是回文串!");
}
sc.close();
}
}
package Class4;
import java.util.Scanner;
public class StringTask03 {
public static void main(String[] args) {
// 输入字符串
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String s = sc.next();
//判断是否同文
//1、方法1
// boolean isHuiWen = true;//假设是回文串
// for (int index = 0; index < s.length()/2; index++) {
// if (s.charAt(index) != s.charAt(s.length()-1-index)) {//对称位置的字符不相等
// isHuiWen = false;//不是回文串
// break;
// }
// }
//方法2
char[] ch = new char[s.length()];
for (int index = s.length() - 1,i = 0; index >= 0; index--,i++) {
ch[i] = s.charAt(index);
}
//输出结果
if (s.equals(new String(ch))) {
System.out.println(s+"是回文串!");
}else {
System.out.println(s+"不是回文串!");
}
sc.close();
}
}
import java.util.Scanner;
public class StringTask03 {
public static void main(String[] args) {
// 输入字符串
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String s = sc.next();
//判断是否同文
//1、方法1
// boolean isHuiWen = true;//假设是回文串
// for (int index = 0; index < s.length()/2; index++) {
// if (s.charAt(index) != s.charAt(s.length()-1-index)) {//对称位置的字符不相等
// isHuiWen = false;//不是回文串
// break;
// }
// }
//方法2
// char[] ch = new char[s.length()];
// for (int index = s.length() - 1,i = 0; index >= 0; index--,i++) {
// ch[i] = s.charAt(index);
// }
//方法3 使用StringBuilder
StringBuilder builder = new StringBuilder(s);
//输出结果
if (s.equals(builder.reverse().toString())) {
System.out.println(s+"是回文串!");
}else {
System.out.println(s+"不是回文串!");
}
sc.close();
}
}