Java傻瓜式学习第七天
今日内容(String类型)
1.什么是String类型?
百度百科:
string是C++、java、VB等编程语言中的字符串,用双引号引起来的几个字符,如"Abc",“一天”.字符串是一个特殊的对象,属于引用类型。 在java、C#中,String类对象创建后,字符串一旦初始化就不能更改,因为string类中所有字符串都是常量,数据是无法更改,由于string对象的不可变,所以可以共享。对String类的任何改变,都是返回一个新的String类对象。 C++标准库中string类以类型的形式对字符串进行封装,且包含了字符序列的处理操作
我的大白话:
用来存字符串,用“”括起来的内容(数据类型 变量名=数值)
2.+用法
- 加法运算—System.out.println(3+4);—输出结果为7
- 拼接—System.out.println(“3”+“4”);—输出结果为34
3.判断相等问题
1.==是可以判断字符串是否相等的,但是不安全
这里abc=abc,没毛病
这里abc应该=abc,但是报错了
总结:==虽然可以判断字符串是否相等,但是不稳定。
2.equals
格式:字符串1.equals.(字符串2)
从这里可以看出,equals不会饭==所犯的错误。
4.数组和String结合
String [] 数组名=new 数组名[长度];
超究极数据管理系统
1.两个数组组合使用
import java.util.Scanner;
public class Demo2 {
//需求,数据的增删改查
public static void main(String[] args) {
String [] xm=new String [100];
long [] xh=new long[100];
System.out.println("欢迎进入系统!!!");
for (;;){
System.out.println("1.添加数据");
System.out.println("2.删除数据");
System.out.println("3.修改数据");
System.out.println("4.查看数据");
System.out.println("5.退出系统");
System.out.println("请选择1~5");
Scanner sc = new Scanner(System.in);
int a= sc.nextInt();
if (a==1){
System.out.println("请按照步骤添加数据");
int c=0;
for (;;){
System.out.println("请输入学生学号:");
long xh1 = sc.nextLong();
for (int i = 0; i < xh.length; i++) {
if (xh[i] == xh1) {
System.out.println("学号已存在,请重新输入!");
break;
}
xh[i] = xh1;
System.out.println("请输入学生姓名");
xm[i] = sc.next();
System.out.println("添加学生数据成功!");
c=1;
break;
}
if (c==1){break;}
}
}else if (a==2) {
System.out.println("请输入须删除数据的学生的学号");
long num= sc.nextLong();
for (int i=0;i< xh.length;i++){
if (xh[i]==num){
xh[i]=0;
xm[i]=null;
System.out.println("删除学生数据成功!");
break;
}
}
}else if (a==3) {
System.out.println("请输入需要修改数据的学生学号");
long num= sc.nextLong();
int c=0;
for (int i=0;i< xh.length;i++){
if (c==1){break;}
if (xh[i]==num){
System.out.println("请输入新的学号");
xh[i]= sc.nextLong();
long xh1=xh[i];
xh[i]=0;
for (int j = 0; j < xh.length; j++) {
if (xh[i] == xh1) {
System.out.println("学号已存在,请重新输入!");
break;
}else {
xh[i]= xh1;
System.out.println("请输入新的学生姓名");
xm[i]=sc.next();
System.out.println("修改数据成功!");
c=1;
break;
}
}
}
}
}else if (a==4) {
for (int i=0;i< xh.length;i++){
if (xh[i]!=0){
System.out.println("学生学号为:"+xh[i]);
System.out.println("学生姓名为:"+xm[i]);
}
}
}else if (a==5) {
System.exit(1);
System.out.println("退出系统成功!");
}else{
System.out.println("指令错误,请重新输入!");
}
}
}
}
自己看把,看明白多少看个人造化了。
2.一个数组,配合数组索引使用(局限性太大)
import java.util.Scanner;
public class Demo3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("欢迎进入系统!!!");
System.out.println("请输入指令!");
String arr[] = new String[100];
for (; ; ) {
System.out.println("1:查看商品信息");
System.out.println("2:修改商品信息");
System.out.println("3:增加商品信息");
System.out.println("4:删除商品信息");
System.out.println("5:退出系统");
System.out.println("请选择1~5");
int i = sc.nextInt();
int b = 0;
if (i == 1) {
for (int a = 0; a < arr.length; a++) {
if (arr[a] != null) {
System.out.println("商品编号为:" + (a + 1));
System.out.println("商品信息为:" + arr[a]);
}
}
} else if (i == 2) {
System.out.println("请输入须修改信息的商品编号");
b = sc.nextInt();//输入编号
b = b - 1;//将编号转换为数组的索引
System.out.println("请输入需要修改为的信息");
arr[b] = sc.next();
System.out.println("修改数据成功!!!");
} else if (i == 3) {
int c= 0;
for (;;){
System.out.println("请输入须要添加信息的商品编号");
for (;;) {
b = sc.nextInt();
b = b - 1;
if (arr[b] != null) {
if (c==0) {
System.out.println("商品编号已被占用,请重新输入!!!");
break;
}
} else {
System.out.println("请输入添加的商品信息");
arr[b] = sc.next();
System.out.println("修改数据成功!!!");
c=1;break;
}
}
if(c==1){break;}
}
} else if (i == 4) {
System.out.println("请输入须要删除信息的商品编号");
b = sc.nextInt();
b = b - 1;
arr[b] = null;
System.out.println("商品信息删除成功!!!");
} else if (i == 5) {
System.out.println("您已成功退出系统");
System.exit(1);
} else {
System.out.println("错误指令,请重新输入");
}
}
}
}
我发现越优化,考虑到的方面越多,我心态崩了我真的是,越优化发现程序不足的地方越多,自己的不足之处也越多!!!