1、数组的创建方法
//第一种
int[] arr = new int[5];
//第二种
int[] arr = new int[]{1,2,3,4,5};
//第三种
int[] arr = {1,2,3,4,5};
2、String类的一些方法使用
获取String的长度是用,String.lenght();方法。
inedxOf(参数一,参数二) 是查找指定字符串的位置,参数一为要找的字符,而参数二为从从字符串的哪个位置开始查找。
lastIndexOf(); 和上面的类似,只是查询的是最后的位置,而不是第一次的位置。
charAt(参数一);该方法则是返回的是对应索引位置的字符,参数一为int类型。
equalsIgonreCase();该方法是忽略大小写进行比骄。
compareTo(); 该方法是用来比较前后的。
split(参数一);该方法表示根据指定的字符(也就是参数一)进行切割成为数组,它返回的是一个
数组。
String的注意事项:
1、String为不可变类,如果要反复累加字符串不推荐使用,可以考虑StringBuffer或者StringBuilder。
2、String类为final修饰的,不可以被继承。
3、如果在多线程情况下考虑使用StringBuffer,因为synchronize关键字保证了安全性。如果是其他情况下,更推荐使用StringBuilder,性能更高。
3、final关键字
3.1、final修饰属性,代表属性的值不可变。如果是强类型(引用类型)那么地址值是不改变的,但里面的内容可以改变。
3.2、修饰类时,代表该类为最终类,不可以再派生子类,也不可以被继承。
4、static属性加与不加的区别?
4.1、static为静态的,属于类的,可以由类名直接调用,当然对象也可以调用,是共享的。
4.2、如果不加static,那么称为实例变量,依赖于每个对象,多个对象互不干涉,是独立的。
5、局部变量和成员变量
局部变量:在方法、构造方法、语句块中定义的变量,都叫局部变量。没有初始值,必须要赋值使用。
成员变量:是定义在类中,方法体之外的变量。可以被类中的方法,构造方法使用。并且它是有初始值的,数值的初始值都为0.String等引用类型为null,boolean为false。
代码案例例题
字符排序(升序和降序)
public calss Text{
public static void main(String[] args){
char[] arr = new char[]{'a','c','g','t','b'};
System.out.print("原字符序列:");
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]+"\t");
}
Arrays.sort(arr);//将数组进行了排序。
System.out.println("\n升序字符序列:");
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]+"\t");
}
System.out.println("\n降序字符序列:");
for(int i = arr.length-1; i >= 0; i++){
System.out.println(arr[i]+"\t");
}
}
}
鸡兔同笼问题
public class Text {
public static void main(String[] args) {
int tu = 0;
for (int ji = 0; ji <= 35; ji++){
tu = 35 - ji;
if ((ji*2 + tu*4) == 94){
System.out.println("鸡有"+ji+"只");
System.out.println("兔子有"+tu+"只");
}
}
for (int ji = 0; ji <= 35; ji++){
tu = 35 - ji;
if ((ji*2 + tu*4) == 94){
System.out.println("鸡有"+ji+"只");
System.out.println("兔子有"+tu+"只");
}
}
}
}
穷举法案例,求出男人,女人,小孩的所有人数可能性
public class Text {
public static void main(String[] args) {
int man;
int woman;
int child;
int i = 0;
for (man = 0; man < 30;man++){
for (woman = 0;woman < 30;woman++){
for (child = 0;child < 30;child++){
if (woman+man+child == 30 && man*3+woman*2+child*1 == 50){
System.out.println(i+":男人"+man+"女人"+woman+"小孩"+child);
i++;
}
}
}
}
}
}
数组容量的扩增,以及任意字符串插入数组的任意位置的输出
public class Text {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String[] musics = new String[]{"Island","Ocean","Pretty","Sun",null};
while (true){
System.out.print("\n插入前的数组为:");
printer(musics);
System.out.print("\n请输入新的歌曲名字(输入0退出):");
String music = input.next();
if ("0".equals(music)) break;
int i =0;
for (;i < musics.length;i++) {
if (null == musics[i] || music.compareToIgnoreCase(musics[i]) < 0){//比较输入的字符串,和原有的字符串进行大小比较。
break;
}
}
for (int j = musics.length - 1; j > i; j--) {
musics[j] = musics[j - 1];
}
musics[i] = music;
System.out.print("插入后的数组为:");
printer(musics);
String[] newArrary = new String[musics.length+1];//定义一个新的数组在之前的数组长度上加一
System.arraycopy(musics,0,newArrary,0,musics.length);//把上面的数组赋值给新的数组,
musics = newArrary;//再把新的数组的引用地址传给老的地址,完成一轮数组长度的增加
}
}
private static void printer(String[] musics) {
for (int i = 0; i < musics.length; i++){
if (musics[i] != null){
System.out.print(musics[i]+"\t");
}
}
}
}
一般的正则表达式案例
public class Text {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入您的电子邮箱:");
String emails = input.next();
if (emails.matches("^[0-9a-z]+\\w*@([0-9a-z]+\\.)+[0-9a-z]+$")){
System.out.println("邮箱格式正确!");
}else {
System.out.println("您的邮箱输入格式不正确!请重新输入!");
}
System.out.print("请输入您的手机号:");
String phone = input.next();
if (phone.matches("^1[3|4|5|7|8][0-9]{9}$")){
System.out.println("您的手机号输入正确!");
}else {
System.out.println("您的手机号输入格式不对!");
}
System.out.print("请输入您的身份证:");
String idCode = input.next();
if (idCode.matches("^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([\\d|x|X]{1})$")){
System.out.println("您的身份证输入正确!");
}else {
System.out.println("您的身份证输入格式不正确!");
}
}
}
查询字符串的位置在何处?
public class Text {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一串字符:");
String ju = input.next();
System.out.println("请输入要查询的字符:");
String zi = input.next();
System.out.print(zi+"出现的位置是:");
for (int i = 0; i < ju.length(); i++){
if (ju.charAt(i) == zi.charAt(0)){
System.out.print(i+"\t");
}
}
int index = 0;
while (true){
index = ju.indexOf(zi,index);
if (index == -1){
break;
}
System.out.print(index+"\t");
index++;
}
}
}
一个小案例,增加人名并可以进行查询修改
public class Kehu {
String[] kuName = new String[20];
public void add(String name){
for (int i = 0; i <kuName.length; i++) {
if (kuName[i] == null){
kuName[i] = name;
System.out.println("添加成功!");
return;
}
}
System.out.println("人员已满,录入失败!");
}
public void show(){
for (int i = 0; i < kuName.length; i++) {
if (kuName[i] == null) break;
else System.out.print(kuName[i] + "\t");
}
}
public int isKuHu(String name,int startIndex,int endIndex){
for (int i = startIndex-1; i <endIndex; i++) {
if (kuName[i].equals(name)) return i;
}
return -1;
}
public int iskuHu(String name){
return isKuHu(name,1,kuName.length);
}
public boolean update(String oldName,String newName){
int res = iskuHu(oldName);
if (res == -1){
return false;
}
kuName[res] = newName;
return true;
}
}
public class Textkuhu {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Kehu kehu = new Kehu();
while (true){
System.out.print("请输入客户姓名:");
String name = input.next();
kehu.add(name);
System.out.print("继续输入吗?(y/n):");
String yn = input.next();
if ("y".equals(yn)) continue;
else break;
}
System.out.println("**********************");
System.out.println("\t客户姓名雷列表:");
System.out.println("**********************");
kehu.show();
System.out.print("\n请输入要查找的客户的姓名:");
if (kehu.iskuHu(input.next()) >= 0){
System.out.println("finding~~~~~~");
}else {
System.out.println("no exit!");
}
System.out.print("请输入要修改的名字:");
String oldName = input.next();
System.out.print("请输入新的客户姓名:");
String newName = input.next();
if (kehu.update(oldName,newName)){
System.out.println("找到了该客户,并修改成功了!");
}else {
System.out.println("没有找到该客户,无法修改!");
}
kehu.show();
System.out.print("请输入查找的开始位置:");
int startIndex = input.nextInt();
System.out.print("请输入查找的结束位置:");
int endIndex = input.nextInt();
System.out.print("请输入查找的客户姓名:");
String name = input.next();
if (kehu.isKuHu(name,startIndex,endIndex) >= 0){
System.out.println("finging~~~~~~~~~");
}else {
System.out.println("not exit!");
}
}
}
利用传参数组类来进行学生的信息增加查询功能
public class Students {
String name;
}
class StudentsBiz{
Students[] stus = new Students[5];
public Students[] add(Students students){
for (int i = 0; i < stus.length; i++) {
if (stus[i] == null){
stus[i] = students;
break;
}
}
return stus;
}
public int search(Students[] stus,Students students){
for (int i = 0; i < stus.length; i++) {
if (stus[i].name.equals(students.name)){
return i;
}
}
return -1;
}
}
public class TextStudents {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请依次录入5位学生的姓名:");
StudentsBiz studentsBiz = new StudentsBiz();
Students[] a = new Students[5];
for (int i = 0; i < 5; i++) {
Students students = new Students();
students.name = input.next();
// studentsBiz.add(students);
a = studentsBiz.add(students);
}
System.out.println("请输入要查找的学生姓名:");
Students students = new Students();
students.name = input.next();
if ((studentsBiz.search(a,students)) >= 0){
System.out.println("*****找到了*****");
}else {
System.out.println("*****抱歉!没找到!*****");
}
}
}