当前位置:   article > 正文

java学习笔记_java ww.getsignature(ticket)

java ww.getsignature(ticket)

 

 

 

  1. package demo1;
  2. import java.util.Scanner;
  3. public class HelloWorld {
  4. public static void main(String[] args) {
  5. Scanner sc =new Scanner(System.in);
  6. int n=sc.nextInt();
  7. System.out.println("hellowrold"+n);
  8. }
  9. }

 如果case==1则执行

 

end.foi == for(int i=0;i<end;i++)

arr.fori == for(int i=0;i<arr.lenght;i++)

 

 

 

 

 

输入字符· 

  1. import java.util.Scanner;
  2. Scanner scanner = new Scanner(System.in);
  3. char c = scanner.next().charAt(0);

判断字符串是否相同 

  1. String a=new String("abc");
  2. String b=new String("abc");
  3. a.equals(b);

输入字符串

  1. Scanner in = new Scanner(System.in);
  2. String s = in.nextLine();

  1. package com.itheima.test;
  2. import java.util.Scanner;
  3. public class Test1 {
  4. public static void main(String[] args) {
  5. /* 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
  6. 按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。*/
  7. //分析:
  8. //1.键盘录入机票原价、月份、头等舱或经济舱
  9. Scanner sc = new Scanner(System.in);
  10. System.out.println("请输入机票的原价");
  11. int ticket = sc.nextInt();
  12. System.out.println("请输入当前的月份");
  13. int month = sc.nextInt();
  14. System.out.println("请输入当前购买的舱位 0 头等舱 1 经济舱");
  15. int seat = sc.nextInt();
  16. //2.先判断月份是旺季还是淡季
  17. //ctrl + alt + M 自动抽取方法
  18. if (month >= 5 && month <= 10) {
  19. //旺季 //3.继续判断当前机票是经济舱还是头等舱
  20. //ticket = getPrice(ticket, seat, 0.9, 0.85);
  21. ticket = getTicket(ticket, seat, 0.9, 0.85);
  22. } else if ((month >= 1 && month <= 4) || (month >= 11 && month <= 12)) {
  23. //淡季
  24. //ticket = getPrice(ticket, seat, 0.7, 0.65);
  25. ticket = getTicket(ticket, seat, 0.7, 0.65);
  26. } else {
  27. //表示键盘录入的月份是一个非法数据
  28. System.out.println("键盘录入的月份不合法");
  29. }
  30. System.out.println(ticket);
  31. }
  32. public static int getTicket(int ticket, int seat, double v, double v2) {
  33. if (seat == 0) {
  34. //头等舱
  35. ticket = (int) (ticket * v);
  36. } else if (seat == 1) {
  37. //经济舱
  38. ticket = (int) (ticket * v2);
  39. } else {
  40. System.out.println("没有这个舱位");
  41. }
  42. return ticket;
  43. }
  44. //1.我要干嘛?根据舱位和折扣来计算最终的票价
  45. //2.我干这件事,需要什么才能完成?原价 舱位 头等舱的折扣 经济舱的折扣
  46. //3.方法的调用处是否需要继续使用这个结果 需要
  47. /* public static int getPrice(int ticket, int seat, double v0, double v1) {
  48. if (seat == 0) {
  49. //头等舱
  50. ticket = (int) (ticket * v0);
  51. } else if (seat == 1) {
  52. //经济舱
  53. ticket = (int) (ticket * v1);
  54. } else {
  55. System.out.println("没有这个舱位");
  56. }
  57. return ticket;
  58. }*/
  59. }
  1. package com.itheima.test;
  2. import java.util.Random;
  3. public class Test3 {
  4. public static void main(String[] args) {
  5. /* 需求:
  6. 定义方法实现随机产生一个5位的验证码
  7. 验证码格式:
  8. 长度为5
  9. 前四位是大写字母或者小写字母
  10. 最后一位是数字
  11. */
  12. //方法:
  13. //在以后如果我们要在一堆没有什么规律的数据中随机抽取
  14. //可以先把这些数据放到数组当中
  15. //再随机抽取一个索引
  16. //分析:
  17. //1.大写字母和小写字母都放到数组当中
  18. char[] chs = new char[52];
  19. for (int i = 0; i < chs.length; i++) {
  20. //ASCII码表
  21. if(i <= 25){
  22. //添加小写字母
  23. chs[i] = (char)(97 + i);
  24. }else{//27
  25. //添加大写字母
  26. // A --- 65
  27. chs[i] = (char)(65 + i - 26);
  28. }
  29. }
  30. //定义一个字符串类型的变量,用来记录最终的结果
  31. String result = "";
  32. //2.随机抽取4次
  33. //随机抽取数组中的索引
  34. Random r = new Random();
  35. for (int i = 0; i < 4; i++) {
  36. int randomIndex = r.nextInt(chs.length);
  37. //利用随机索引,获取对应的元素
  38. //System.out.println(chs[randomIndex]);
  39. result = result + chs[randomIndex];
  40. }
  41. //System.out.println(result);
  42. //3.随机抽取一个数字0~9
  43. int number = r.nextInt(10);
  44. //生成最终的结果
  45. result = result + number;
  46. //打印最终结果
  47. System.out.println(result);
  48. }
  49. }

shift + f6 改一堆

  1. package com.itheima.test;
  2. import java.util.Random;
  3. public class Test9 {
  4. public static void main(String[] args) {
  5. /* 需求:
  6. 一个大V直播抽奖,奖品是现金红包,分别有{2, 588 , 888, 1000, 10000}五个奖金。
  7. 请使用代码模拟抽奖,打印出每个奖项,奖项的出现顺序要随机且不重复。
  8. 打印效果如下:(随机顺序,不一定是下面的顺序)
  9. 888元的奖金被抽出
  10. 588元的奖金被抽出
  11. 10000元的奖金被抽出
  12. 1000元的奖金被抽出
  13. 2元的奖金被抽出
  14. */
  15. //分析:
  16. //1.定义数组表示奖池
  17. int[] arr = {2, 588, 888, 1000, 10000};
  18. //2.定义新数组用于存储抽奖的结果
  19. int[] newArr = new int[arr.length];
  20. //3.抽奖
  21. Random r = new Random();
  22. //因为有5个奖项,所以这里要循环5次
  23. for (int i = 0; i < 5; ) {
  24. //获取随机索引
  25. int randomIndex = r.nextInt(arr.length);
  26. //获取奖项
  27. int prize = arr[randomIndex];
  28. //判断当前的奖项是否存在,如果存在则重新抽取,如果不存在,就表示是有效奖项
  29. boolean flag = contains(newArr, prize);
  30. if(!flag){
  31. //把当前抽取到的奖项添加到newArr当中
  32. newArr[i] = prize;
  33. //添加完毕之后,移动索引
  34. i++;
  35. }
  36. }
  37. //4.遍历newArr
  38. for (int i = 0; i < newArr.length; i++) {
  39. System.out.println(newArr[i]);
  40. }
  41. }
  42. //判断prize在数组当中是否存在
  43. //存在:true
  44. //不存在:false
  45. public static boolean contains(int[] arr,int prize){
  46. for (int i = 0; i < arr.length; i++) {
  47. if(arr[i] == prize){
  48. return true;
  49. }
  50. }
  51. return false;
  52. }
  53. }

  1. package com.itheima.test;
  2. import java.util.Random;
  3. public class Test10 {
  4. public static void main(String[] args) {
  5. /* 需求:
  6. 一个大V直播抽奖,奖品是现金红包,分别有{2, 588 , 888, 1000, 10000}五个奖金。
  7. 请使用代码模拟抽奖,打印出每个奖项,奖项的出现顺序要随机且不重复。
  8. 打印效果如下:(随机顺序,不一定是下面的顺序)
  9. 888元的奖金被抽出
  10. 588元的奖金被抽出
  11. 10000元的奖金被抽出
  12. 1000元的奖金被抽出
  13. 2元的奖金被抽出
  14. */
  15. //1.把奖池里面的所有奖项打乱顺序
  16. int[] arr = {2, 588, 888, 1000, 10000};
  17. Random r = new Random();
  18. for (int i = 0; i < arr.length; i++) {
  19. //获取随机索引
  20. int randomIndex = r.nextInt(arr.length);
  21. //拿着i跟随机索引randomIndex上的值进行交换
  22. int temp = arr[i];
  23. arr[i] = arr[randomIndex];
  24. arr[randomIndex] = temp;
  25. }
  26. //2.遍历奖池,从0索引开始获取每一个奖项
  27. for (int i = 0; i < arr.length; i++) {
  28. System.out.println(arr[i]);
  29. }
  30. }
  31. }

  1. package com.itheima.test;
  2. import java.util.Random;
  3. import java.util.Scanner;
  4. public class Test11 {
  5. public static void main(String[] args) {
  6. //1.生成中奖号码
  7. int[] arr = createNumber(); // 123456 7
  8. System.out.println("=======================");
  9. for (int i = 0; i < arr.length; i++) {
  10. System.out.print(arr[i] + " ");
  11. }
  12. System.out.println("=======================");
  13. //2.用户输入彩票号码(红球 + 蓝球)//654321
  14. int[] userInputArr = userInputNumber();
  15. //3.判断用户的中奖情况
  16. //红球 蓝球
  17. int redCount = 0;
  18. int blueCount = 0;
  19. //判断红球
  20. for (int i = 0; i < userInputArr.length - 1; i++) {
  21. int redNumber = userInputArr[i];
  22. for (int j = 0; j < arr.length - 1; j++) {
  23. if(redNumber == arr[j]){
  24. redCount++;
  25. //如果找到了,那么后面的数字就没有必要继续比较了
  26. //跳出内循环,继续判断下一个红球号码是否中奖
  27. break;
  28. }
  29. }
  30. }
  31. //判断蓝球
  32. int blueNumber = userInputArr[userInputArr.length-1];
  33. if(blueNumber == arr[arr.length - 1]){
  34. blueCount++;
  35. }
  36. //根据红球的个数以及蓝球的个数来判断中奖情况
  37. if(redCount == 6 && blueCount == 1){
  38. System.out.println("恭喜你,中奖1000万");
  39. }else if(redCount == 6 && blueCount == 0){
  40. System.out.println("恭喜你,中奖500万");
  41. }else if(redCount == 5 && blueCount == 1){
  42. System.out.println("恭喜你,中奖3000");
  43. }else if((redCount == 5 && blueCount == 0) || (redCount == 4 && blueCount == 1)){
  44. System.out.println("恭喜你,中奖200");
  45. }else if((redCount == 4 && blueCount == 0) || (redCount == 3 && blueCount == 1)){
  46. System.out.println("恭喜你,中奖10");
  47. }else if((redCount == 2 && blueCount == 1) || (redCount == 1 && blueCount == 1)|| (redCount == 0 && blueCount == 1)){
  48. System.out.println("恭喜你,中奖5");
  49. }else{
  50. System.out.println("谢谢参与,谢谢惠顾");
  51. }
  52. }
  53. public static int[] userInputNumber() {
  54. //1.创建数组用于添加用户购买的彩票号码
  55. //6个红球 1个蓝球 数组长度:7
  56. int[] arr = new int[7];
  57. //2.利用键盘录入让用输入
  58. Scanner sc = new Scanner(System.in);
  59. //让用户输入红球号码
  60. for (int i = 0; i < 6; ) {
  61. System.out.println("请输入第" + (i + 1) + "个红球号码");
  62. int redNumber = sc.nextInt();
  63. //redNumber 在1~33 唯一不重复
  64. if (redNumber >= 1 && redNumber <= 33) {
  65. boolean flag = contains(arr, redNumber);
  66. if (!flag) {
  67. //不存在
  68. //有效的,可以添加到数组当中
  69. arr[i] = redNumber;
  70. i++;
  71. } else {
  72. //存在
  73. System.out.println("当前红球号码已经存在,请重新输入");
  74. }
  75. } else {
  76. System.out.println("当前红球号码超出范围");
  77. }
  78. }
  79. //让用户输入篮球号码
  80. System.out.println("请输入篮球号码");
  81. //1~16
  82. while (true) {
  83. int blueNumber = sc.nextInt();
  84. if (blueNumber >= 1 && blueNumber <= 16) {
  85. arr[arr.length - 1] = blueNumber;
  86. break;
  87. } else {
  88. System.out.println("当前篮球号码超出范围");
  89. }
  90. }
  91. return arr;
  92. }
  93. public static int[] createNumber() {
  94. //1.创建数组用于添加中奖号码
  95. //6个红球 1个蓝球 数组长度:7
  96. int[] arr = new int[7];
  97. //2.随机生成号码并添加到数组当中
  98. //红球:不能重复的 1 2 3 4 5 6
  99. //蓝球:可以跟红球号码重复 5
  100. //生成红球号码并添加到数组当中
  101. Random r = new Random();
  102. for (int i = 0; i < 6; ) {
  103. //获取红球号码
  104. int redNumber = r.nextInt(33) + 1;
  105. boolean flag = contains(arr, redNumber);
  106. if (!flag) {
  107. //把红球号码添加到数组当中
  108. arr[i] = redNumber;
  109. i++;
  110. }
  111. }
  112. //生成蓝球号码并添加到数组当中
  113. int blueNumber = r.nextInt(16) + 1;
  114. arr[arr.length - 1] = blueNumber;
  115. return arr;
  116. }
  117. //用于判断数组在数组中是否存在
  118. public static boolean contains(int[] arr, int number) {
  119. for (int i = 0; i < arr.length; i++) {
  120. if (arr[i] == number) {
  121. return true;
  122. }
  123. }
  124. return false;
  125. }
  126. }

System.arraycopy(a, 2, b, 1, 3);

从a的第二个元素开始(从1开始),复制长度为3个元素到从b的第1个位置之后(从0开始)

按鼠标滚轮快塑选取

alt +fn +insert生成构造函数

 两下tab一次回车 默认构造             全选全参构造

第4个函数

使用ptg to javabean

按shift+下选择,tab跳过选择 

ctrl+p方法参数 

 

 

 ctrl+B查看

.forr倒着遍历

  1. package com.itheima.stringdemo;
  2. import java.util.Scanner;
  3. public class StringDemo9 {
  4. public static void main(String[] args) {
  5. //1.键盘录入一个金额
  6. Scanner sc = new Scanner(System.in);
  7. int money;
  8. while (true) {
  9. System.out.println("请录入一个金额");
  10. money = sc.nextInt();
  11. if (money >= 0 && money <= 9999999) {
  12. break;
  13. } else {
  14. System.out.println("金额无效");
  15. }
  16. }
  17. //定义一个变量用来表示钱的大写
  18. String moneyStr = "";
  19. //2.得到money里面的每一位数字,再转成中文
  20. while (true) {//2135
  21. //从右往左获取数据,因为右侧是数据的个位
  22. int ge = money % 10;
  23. String capitalNumber = getCapitalNumber(ge);
  24. //把转换之后的大写拼接到moneyStr当中
  25. moneyStr = capitalNumber + moneyStr;
  26. //第一次循环 : "伍" + "" = "伍"
  27. //第二次循环 : "叁" + "伍" = "叁伍"
  28. //去掉刚刚获取的数据
  29. money = money / 10;
  30. //如果数字上的每一位全部获取到了,那么money记录的就是0,此时循环结束
  31. if (money == 0) {
  32. break;
  33. }
  34. }
  35. //3.在前面补0,补齐7位
  36. int count = 7 - moneyStr.length();
  37. for (int i = 0; i < count; i++) {
  38. moneyStr = "零" + moneyStr;
  39. }
  40. System.out.println(moneyStr);//零零零贰壹叁伍
  41. //4.插入单位
  42. //定义一个数组表示单位
  43. String[] arr = {"佰","拾","万","仟","佰","拾","元"};
  44. // 零 零 零 贰 壹 叁 伍
  45. //遍历moneyStr,依次得到 零 零 零 贰 壹 叁 伍
  46. //然后把arr的单位插入进去
  47. String result = "";
  48. for (int i = 0; i < moneyStr.length(); i++) {
  49. char c = moneyStr.charAt(i);
  50. //把大写数字和单位拼接到result当中
  51. result = result + c + arr[i];
  52. }
  53. //5.打印最终结果
  54. System.out.println(result);
  55. }
  56. //定义一个方法把数字变成大写的中文
  57. //1 -- 壹
  58. public static String getCapitalNumber(int number) {
  59. //定义数组,让数字跟大写的中文产生一个对应关系
  60. String[] arr = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
  61. //返回结果
  62. return arr[number];
  63. }
  64. }

 

 

 

  1. package com.itheima.stringbuilderdemo;
  2. public class StringBuilderDemo7 {
  3. public static void main(String[] args) {
  4. //1.定义数组
  5. int[] arr = {1,2,3};
  6. //2.调用方法把数组变成字符串
  7. String str = arrToString(arr);
  8. System.out.println(str);
  9. }
  10. public static String arrToString(int[] arr){
  11. StringBuilder sb = new StringBuilder();
  12. sb.append("[");
  13. for (int i = 0; i < arr.length; i++) {
  14. if(i == arr.length - 1){
  15. sb.append(arr[i]);
  16. }else{
  17. sb.append(arr[i]).append(", ");
  18. }
  19. }
  20. sb.append("]");
  21. return sb.toString();
  22. }
  23. }

ctrl +L+T 给一段代码加循环

  1. package com.itheima.test;
  2. import java.util.Scanner;
  3. public class Test1Case2 {
  4. public static void main(String[] args) {
  5. /* 键盘录入一个字符串,
  6. 要求1:长度为小于等于9
  7. 要求2:只能是数字
  8. 将内容变成罗马数字
  9. 下面是阿拉伯数字跟罗马数字的对比关系:
  10. Ⅰ-1、Ⅱ-2、Ⅲ-3、Ⅳ-4、Ⅴ-5、Ⅵ-6、Ⅶ-7、Ⅷ-8、Ⅸ-9
  11. 注意点:
  12. 罗马数字里面是没有0的
  13. 如果键盘录入的数字包含0,可以变成""(长度为0的字符串)*/
  14. //1.键盘录入一个字符串
  15. //书写Scanner的代码
  16. Scanner sc = new Scanner(System.in);
  17. String str;
  18. while (true) {
  19. System.out.println("请输入一个字符串");
  20. str = sc.next();
  21. //2.校验字符串是否满足规则
  22. boolean flag = checkStr(str);
  23. if (flag) {
  24. break;
  25. } else {
  26. System.out.println("当前的字符串不符合规则,请重新输入");
  27. continue;
  28. }
  29. }
  30. //将内容变成罗马数字
  31. //下面是阿拉伯数字跟罗马数字的对比关系:
  32. //Ⅰ-1、Ⅱ-2、Ⅲ-3、Ⅳ-4、Ⅴ-5、Ⅵ-6、Ⅶ-7、Ⅷ-8、Ⅸ-9
  33. //查表法:数字跟数据产生一个对应关系
  34. StringBuilder sb = new StringBuilder();
  35. for (int i = 0; i < str.length(); i++) {
  36. char c = str.charAt(i);
  37. String s = changeLuoMa(c);
  38. sb.append(s);
  39. }
  40. System.out.println(sb);
  41. }
  42. //利用switch进行匹配
  43. public static String changeLuoMa(char number) {
  44. String str = switch (number) {
  45. case '0' -> "";
  46. case '1' -> "Ⅰ";
  47. case '2' -> "Ⅱ";
  48. case '3' -> "Ⅲ";
  49. case '4' -> "Ⅳ";
  50. case '5' -> "Ⅴ";
  51. case '6' -> "Ⅵ";
  52. case '7' -> "Ⅶ";
  53. case '8' -> "Ⅷ";
  54. case '9' -> "Ⅸ";
  55. default -> str = "";
  56. };
  57. return str;
  58. }
  59. public static boolean checkStr(String str) {//123456
  60. //要求1:长度为小于等于9
  61. if (str.length() > 9) {
  62. return false;
  63. }
  64. //要求2:只能是数字
  65. for (int i = 0; i < str.length(); i++) {
  66. char c = str.charAt(i);//0~9
  67. if (c < '0' || c > '9') {
  68. return false;
  69. }
  70. }
  71. //只有当字符串里面所有的字符全都判断完毕了,我才能认为当前的字符串是符合规则
  72. return true;
  73. }
  74. }

  1. package com.itheima.test;
  2. import java.util.Scanner;
  3. public class Test1Case1 {
  4. public static void main(String[] args) {
  5. /* 键盘录入一个字符串,
  6. 要求1:长度为小于等于9
  7. 要求2:只能是数字
  8. 将内容变成罗马数字
  9. 下面是阿拉伯数字跟罗马数字的对比关系:
  10. Ⅰ-1、Ⅱ-2、Ⅲ-3、Ⅳ-4、Ⅴ-5、Ⅵ-6、Ⅶ-7、Ⅷ-8、Ⅸ-9
  11. 注意点:
  12. 罗马数字里面是没有0的
  13. 如果键盘录入的数字包含0,可以变成""(长度为0的字符串)*/
  14. //1.键盘录入一个字符串
  15. //书写Scanner的代码
  16. Scanner sc = new Scanner(System.in);
  17. String str;
  18. while (true) {
  19. System.out.println("请输入一个字符串");
  20. str = sc.next();
  21. //2.校验字符串是否满足规则
  22. boolean flag = checkStr(str);
  23. if (flag) {
  24. break;
  25. } else {
  26. System.out.println("当前的字符串不符合规则,请重新输入");
  27. continue;
  28. }
  29. }
  30. //将内容变成罗马数字
  31. //下面是阿拉伯数字跟罗马数字的对比关系:
  32. //Ⅰ-1、Ⅱ-2、Ⅲ-3、Ⅳ-4、Ⅴ-5、Ⅵ-6、Ⅶ-7、Ⅷ-8、Ⅸ-9
  33. //查表法:数字跟数据产生一个对应关系
  34. StringBuilder sb = new StringBuilder();
  35. for (int i = 0; i < str.length(); i++) {
  36. char c = str.charAt(i);
  37. int number = c - 48; // 1 2 3 4 5
  38. String s = changeLuoMa(number);
  39. sb.append(s);
  40. }
  41. System.out.println(sb);
  42. }
  43. public static String changeLuoMa(int number) {
  44. //定义一个数组,让索引跟罗马数字产生一个对应关系
  45. String[] arr = {"", "Ⅰ", "Ⅱ", "Ⅲ", "Ⅳ", "Ⅴ", "Ⅵ", "Ⅶ", "Ⅷ", "Ⅸ"};
  46. return arr[number];
  47. }
  48. public static boolean checkStr(String str) {//123456
  49. //要求1:长度为小于等于9
  50. if (str.length() > 9) {
  51. return false;
  52. }
  53. //要求2:只能是数字
  54. for (int i = 0; i < str.length(); i++) {
  55. char c = str.charAt(i);//0~9
  56. if (c < '0' || c > '9') {
  57. return false;
  58. }
  59. }
  60. //只有当字符串里面所有的字符全都判断完毕了,我才能认为当前的字符串是符合规则
  61. return true;
  62. }
  63. }

字符反转:

  1. package com.itheima.test;
  2. public class Test2Case1 {
  3. public static void main(String[] args) {
  4. /* 给定两个字符串, A和B。
  5. A的旋转操作就是将A 最左边的字符移动到最右边。
  6. 例如, 若A = 'abcde',在移动一次之后结果就是'bcdea'
  7. 如果在若干次调整操作之后,A能变成B,那么返回True。
  8. 如果不能匹配成功,则返回false*/
  9. //1.定义两个字符串
  10. String strA = "abcde";
  11. String strB = "ABC";
  12. //2.调用方法进行比较
  13. boolean result = check(strA, strB);
  14. //3.输出
  15. System.out.println(result);
  16. }
  17. public static boolean check(String strA, String strB) {
  18. for (int i = 0; i < strA.length(); i++) {
  19. strA = rotate(strA);
  20. if(strA.equals(strB)){
  21. return true;
  22. }
  23. }
  24. //所有的情况都比较完毕了,还不一样那么直接返回false
  25. return false;
  26. }
  27. //作用:旋转字符串,把左侧的字符移动到右侧去
  28. //形参:旋转前的字符串
  29. //返回值:旋转后的字符串
  30. public static String rotate(String str) {
  31. //套路:
  32. //如果我们看到要修改字符串的内容
  33. //可以有两个办法:
  34. //1.用subString进行截取,把左边的字符截取出来拼接到右侧去
  35. //2.可以把字符串先变成一个字符数组,然后调整字符数组里面数据,最后再把字符数组变成字符串。
  36. //截取思路
  37. //获取最左侧那个字符
  38. char first = str.charAt(0);
  39. //获取剩余的字符
  40. String end = str.substring(1);
  41. return end + first;
  42. }
  43. }
  1. package com.itheima.test;
  2. public class Test2Case2 {
  3. public static void main(String[] args) {
  4. /* 给定两个字符串, A和B。
  5. A的旋转操作就是将A 最左边的字符移动到最右边。
  6. 例如, 若A = 'abcde',在移动一次之后结果就是'bcdea'
  7. 如果在若干次调整操作之后,A能变成B,那么返回True。
  8. 如果不能匹配成功,则返回false*/
  9. //1.定义两个字符串
  10. String strA = "abcde";
  11. String strB = "ABC";
  12. //2.调用方法进行比较
  13. boolean result = check(strA, strB);
  14. //3.输出
  15. System.out.println(result);
  16. }
  17. public static boolean check(String strA, String strB) {
  18. for (int i = 0; i < strA.length(); i++) {
  19. strA = rotate(strA);
  20. if (strA.equals(strB)) {
  21. return true;
  22. }
  23. }
  24. //所有的情况都比较完毕了,还不一样那么直接返回false
  25. return false;
  26. }
  27. //作用:旋转字符串,把左侧的字符移动到右侧去
  28. //形参:旋转前的字符串
  29. //返回值:旋转后的字符串
  30. public static String rotate(String str) {
  31. //套路:
  32. //如果我们看到要修改字符串的内容
  33. //可以有两个办法:
  34. //1.用subString进行截取,把左边的字符截取出来拼接到右侧去
  35. //2.可以把字符串先变成一个字符数组,然后调整字符数组里面数据,最后再把字符数组变成字符串。
  36. //可以把字符串先变成一个字符数组,然后调整字符数组里面数据,最后再把字符数组变成字符串。
  37. //"ABC" ['A','B','C'] ['B','C','A'] new String(字符数组);
  38. char[] arr = str.toCharArray();
  39. //拿到0索引上的字符
  40. char first = arr[0];
  41. //把剩余的字符依次往前挪一个位置
  42. for (int i = 1; i < arr.length; i++) {
  43. arr[i - 1] = arr[i];
  44. }
  45. //把原来0索引上的字符放到最后一个索引
  46. arr[arr.length - 1] = first;
  47. //利用字符数组创建一个字符串对象
  48. String result = new String(arr);
  49. return result;
  50. }
  51. }

  1. package com.itheima.listdemo;
  2. import java.util.ArrayList;
  3. /*
  4. boolean add(E e) 添加
  5. boolean remove(E e) 删除
  6. E remove(int index)
  7. E set(int index,E e) 修改
  8. E get(int index) 查询
  9. int size() 获取长度
  10. */
  11. public class ArrayListDemo2 {
  12. public static void main(String[] args) {
  13. //1.创建一个集合
  14. ArrayList<String> list = new ArrayList<>();
  15. //2.添加元素
  16. list.add("aaa");
  17. list.add("aaa");
  18. list.add("bbb");
  19. list.add("ccc");
  20. //3.删除元素
  21. /* boolean result1 = list.remove("aaa");
  22. System.out.println(result1);
  23. boolean result2 = list.remove("ddd");
  24. System.out.println(result2);
  25. String str = list.remove(2);
  26. System.out.println(str);*/
  27. //修改元素
  28. /*String result = list.set(1, "ddd");
  29. System.out.println(result);*/
  30. //查询元素
  31. /* String s = list.get(0);
  32. System.out.println(s);*/
  33. //遍历
  34. for (int i = 0; i < list.size(); i++) {
  35. //i 索引
  36. //list.get(i) 元素
  37. String str = list.get(i);
  38. System.out.println(str);
  39. }
  40. }
  41. }

学生对象:

  1. package com.itheima.test;
  2. public class Student {
  3. //1.私有化成员变量
  4. //2.空参构造方法
  5. //3.带全部参数的构造方法
  6. //4.get/set方法
  7. private String name;
  8. private int age;
  9. public Student() {
  10. }
  11. public Student(String name, int age) {
  12. this.name = name;
  13. this.age = age;
  14. }
  15. public String getName() {
  16. return name;
  17. }
  18. public void setName(String name) {
  19. this.name = name;
  20. }
  21. public int getAge() {
  22. return age;
  23. }
  24. public void setAge(int age) {
  25. this.age = age;
  26. }
  27. }
  1. package com.itheima.test;
  2. import java.util.ArrayList;
  3. import java.util.Scanner;
  4. public class Test5 {
  5. public static void main(String[] args) {
  6. //1.创建集合
  7. ArrayList<Student> list = new ArrayList<>();
  8. //长度为0
  9. //2.键盘录入学生的信息并添加到集合当中
  10. Scanner sc = new Scanner(System.in);
  11. Student s = new Student();
  12. for (int i = 0; i < 3; i++) {
  13. System.out.println("请输入学生的姓名");
  14. String name = sc.next();
  15. System.out.println("请输入学生的年龄");
  16. int age = sc.nextInt();
  17. //把name和age赋值给学生对象
  18. s.setName(name);
  19. s.setAge(age);
  20. //把学生对象添加到集合当中
  21. list.add(s);
  22. }
  23. //3.遍历
  24. for (int i = 0; i < list.size(); i++) {
  25. //i 索引 list.get(i) 元素/学生对象
  26. Student stu = list.get(i);
  27. System.out.println(stu.getName() + ", " + stu.getAge());
  28. }
  29. }
  30. }

ctrl +p 提示

查找用户:

  1. package OOPtext;
  2. import java.util.ArrayList;
  3. public class Text6 {
  4. public static void main(String[] args) {
  5. //1.创建集合
  6. ArrayList<User> list = new ArrayList<>();
  7. //2.创建三个用户对象
  8. User u1 = new User("heima001","zhangsan","123456");
  9. User u2 = new User("heima002","lisi","12345678");
  10. User u3 = new User("heima003","wangwu","1234qwer");
  11. //3.把用户对象添加到集合当中
  12. list.add(u1);
  13. list.add(u2);
  14. list.add(u3);
  15. //4.调用方法查看id是否存在
  16. boolean flag = contains(list, "heima0010");
  17. //5.打印结果
  18. System.out.println(flag);
  19. }
  20. //1.我要干嘛? 根据id查找用户
  21. //2.我干这件事需要什么才能完成? list id
  22. //3.调用处是否需要使用方法的结果? 返回
  23. public static boolean contains(ArrayList<User> list, String id){
  24. /* for (int i = 0; i < list.size(); i++) {
  25. User u = list.get(i);
  26. String uid = u.getId();
  27. if(uid.equals(id)){
  28. //如果找到了直接返回true
  29. return true;
  30. }
  31. }
  32. //当循环结束表示集合里面所有的元素都已经比较完毕,还没有一样的,那么返回false就可以了
  33. return false;*/
  34. return getIndex(list,id) >= 0;
  35. }
  36. public static int getIndex(ArrayList<User> list, String id) {
  37. for (int i = 0; i < list.size(); i++) {
  38. User u = list.get(i);
  39. String uid = u.getId();
  40. if(uid.equals(id)){
  41. return i;
  42. }
  43. }
  44. return -1;
  45. }
  46. }

  1. package OOPtext;
  2. public class User {
  3. private String id;
  4. private String username;
  5. private String password;
  6. public User() {
  7. }
  8. public User(String id, String username, String password) {
  9. this.id = id;
  10. this.username = username;
  11. this.password = password;
  12. }
  13. public String getId() {
  14. return id;
  15. }
  16. public void setId(String id) {
  17. this.id = id;
  18. }
  19. public String getUsername() {
  20. return username;
  21. }
  22. public void setUsername(String username) {
  23. this.username = username;
  24. }
  25. public String getPassword() {
  26. return password;
  27. }
  28. public void setPassword(String password) {
  29. this.password = password;
  30. }
  31. }

 手机查询:

  1. package com.itheima.test;
  2. public class Phone {
  3. //Phone属性:品牌,价格。
  4. private String brand;
  5. private int price;
  6. public Phone() {
  7. }
  8. public Phone(String brand, int price) {
  9. this.brand = brand;
  10. this.price = price;
  11. }
  12. public String getBrand() {
  13. return brand;
  14. }
  15. public void setBrand(String brand) {
  16. this.brand = brand;
  17. }
  18. public int getPrice() {
  19. return price;
  20. }
  21. public void setPrice(int price) {
  22. this.price = price;
  23. }
  24. }
  1. package com.itheima.test;
  2. /*
  3. 需求:
  4. 定义Javabean类:Phone
  5. Phone属性:品牌,价格。
  6. main方法中定义一个集合,存入三个手机对象。
  7. 分别为:小米,1000。苹果,8000。锤子 2999。
  8. 定义一个方法,将价格低于3000的手机信息返回。
  9. */
  10. import java.util.ArrayList;
  11. public class Test8 {
  12. public static void main(String[] args) {
  13. //1.创建集合对象
  14. ArrayList<Phone> list = new ArrayList<>();
  15. //2.创建手机的对象
  16. Phone p1 = new Phone("小米",1000);
  17. Phone p2 = new Phone("苹果",8000);
  18. Phone p3 = new Phone("锤子",2999);
  19. //3.添加数据
  20. list.add(p1);
  21. list.add(p2);
  22. list.add(p3);
  23. //4.调用方法
  24. ArrayList<Phone> phoneInfoList = getPhoneInfo(list);
  25. //5.遍历集合
  26. for (int i = 0; i < phoneInfoList.size(); i++) {
  27. Phone phone = phoneInfoList.get(i);
  28. System.out.println(phone.getBrand() + ", " + phone.getPrice());
  29. }
  30. }
  31. //1.我要干嘛? 查询手机信息
  32. //2.我干这件事情,需要什么才能完成? 集合
  33. //3.我干完了,方法的调用处是否需要继续使用结果? 返回
  34. //技巧:
  35. //如果我们要返回多个数据,可以把这些数据先放到一个容器当中,再把容器返回
  36. //集合 数组
  37. public static ArrayList<Phone> getPhoneInfo(ArrayList<Phone> list){
  38. //定义一个集合用于存储价格低于3000的手机对象
  39. ArrayList<Phone> resultList = new ArrayList<>();
  40. //遍历集合
  41. for (int i = 0; i < list.size(); i++) {
  42. Phone p = list.get(i);
  43. int price = p.getPrice();
  44. //如果当前手机的价格低于3000,那么就把手机对象添加到resultList中
  45. if(price < 3000){
  46. resultList.add(p);
  47. }
  48. }
  49. //返回resultList
  50. return resultList;
  51. }
  52. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/207286
推荐阅读
相关标签
  

闽ICP备14008679号