Java实验3与第五周总结

「爱情、让人受尽委屈。」 2023-08-17 17:39 104阅读 0赞

1.已知字符串:”this is a test of java”.按要求执行以下操作:(要求源代码、结果截图。)
•统计该字符串中字母s出现的次数。
•统计该字符串中子串“is”出现的次数。
•统计该字符串中单词“is”出现的次数。
•实现该字符串的倒序输出。

  1. public class Test5 {
  2. String s = "this is a test of java";
  3. static Test5 OneString = new Test5();
  4. public static void main(String[] args) {
  5. OneString.numberS();
  6. OneString.numberIS();
  7. OneString.numberwordIS();
  8. OneString.reversal();
  9. }
  10. public void numberS() {
  11. int number = 0;
  12. for(int i = 0 ; i < s.length(); i++) {
  13. char c = s.charAt(i);
  14. if(c=='s') {
  15. number++;
  16. }
  17. }
  18. System.out.println("S出现次数"+number);
  19. }
  20. public void numberIS() {
  21. int number = 0;
  22. for(int i = 1 ; i < s.length() ; i++) {
  23. char c = s.charAt(i-1);
  24. char c1 = s.charAt(i);
  25. if(c=='i'&&c1=='s') {
  26. number++;
  27. }
  28. }
  29. System.out.println("字符IS出现次数"+number);
  30. }
  31. public void numberwordIS() {
  32. int number = 0;
  33. String s[] = this.s.split(" ");
  34. for(String s1 : s) {
  35. if(s1.equalsIgnoreCase("is")) {
  36. number++;
  37. }
  38. }
  39. System.out.println("单词IS"+number);
  40. }
  41. public void reversal() {
  42. StringBuilder word = new StringBuilder();
  43. for(int i = s.length()-1 ; i>=0 ; i--) {
  44. char c = s.charAt(i);
  45. word = word.append(s.charAt(i));
  46. }
  47. System.out.println("倒序输出 " + word);
  48. }
  49. }

本题我没有将字符串转换为数组再操作。在判断字符is时我一开始并未想到如何去使循环检测二个字符,最后上网查了下,发现可以建二个char型的变量进行检测。
在寻找单词时,虽然用空格隔开了,但我一开始并未想到一个很好的方法去对比单词是不是is,最后询问朋友,得到了一个·新的方法。

1582784-20190926182506783-375193191.png

2.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。

  1. import java.util.Scanner;
  2. public class Test52 {
  3. static Scanner scanner = new Scanner(System.in);
  4. public static void main(String[] args) {
  5. StringBuilder s = new StringBuilder();
  6. String s2 = " ";
  7. String s1 = scanner.next();
  8. for(int i = 0 ; i < s1.length() ; i++) {
  9. int c = s1.charAt(i);
  10. if(c>=65 && c<=90) {
  11. if(c==88) {
  12. c = 65;
  13. }else if(c==89) {
  14. c = 66;
  15. }else if(c==90) {
  16. c = 67;
  17. }else {
  18. c+=3;
  19. }
  20. s2 = String.valueOf(s.append((char)c));
  21. }else
  22. if(c>=97 && c<=122) {
  23. if(c==120) {
  24. c = 97;
  25. }else if(c==121) {
  26. c = 98;
  27. }else if(c==122) {
  28. c = 99;
  29. }else {
  30. c+=3;
  31. }
  32. s2 = String.valueOf(s.append((char)c));
  33. }
  34. }
  35. System.out.println("加密前 "+s1);
  36. System.out.println("加密后 "+s);
  37. }
  38. }

一开始我并未弄明白本题的意思,我以为只是将字符串往后移三位,然后发现还要加密,所以一开始不能理解。
经过我朋友的一番提点,我才想起来C语言老师曾经说过的加密,最后从这方面尝试了下。

1582784-20190926182911674-1061819106.png

3.已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。

  1. public class Test53 {
  2. static String s = "ddejjdsEFALDFfnef2357 3ed";
  3. public static void main(String[] args) {
  4. int Word = 0;
  5. int word = 0;
  6. int other = 0;
  7. for(int i = 0;i < s.length();i++) {
  8. char c = s.charAt(i);
  9. if(c>='A' && c<='Z') {
  10. Word++;
  11. }else
  12. if(c>='a' &&c<='z') {
  13. word++;
  14. }else {
  15. other++;
  16. }
  17. }
  18. System.out.print("大写字母: "+Word+",小写字母 "+word+",其他 "+other);
  19. }
  20. }

这个题目相较于前二题来说比较简单,没有出现什么错误。
1582784-20190926183047885-2055666193.png

第五周学习总结
这周总算是通过自己的自主学习学到了一些东西:
因为上周在课堂上老师讲解了string类的相关知识,所以这周在做作业时,主要是围绕string而学习:
1.char[] up = str.tocharArray();可以将字符串转换成数组,再通过以前学的C语言知识进行简单的转换即可。
2.string s[] = this.s.split(“”);可以进行切割,我觉得这在寻找单词时是很有用的。
3.stringBuilder与stringBuffer字符串变量。stringBuilder中的attend方法与insert方法在添加字符或字符串时有着很好的作用。
4.valueOf可以把其他类型的变量转换成字符串类型的变量。
这只是一些自我学习后的总结,如果以后发现有不完整的,再补充

加密

  1. import java.util.Scanner;
  2. public class Test532 {
  3. public static void main(String[] args) {
  4. Scanner s=new Scanner(System.in);
  5. String str = s.next();
  6. char a[]= str.toCharArray();
  7. char b[] = new char[10] ;
  8. int n=0;
  9. for(int i = a.length-3;i<a.length;i++) {
  10. b[n]=a[i];
  11. n++;
  12. }
  13. for(int j=0;j<a.length-3;j++) {
  14. b[n]=a[j];
  15. n++;
  16. }
  17. System.out.println(b);
  18. }
  19. }

1582784-20190929193034247-357619380.png

转载于:https://www.cnblogs.com/arthur-w/p/11593596.html

发表评论

表情:
评论列表 (有 0 条评论,104人围观)

还没有评论,来说两句吧...

相关阅读

    相关 暑假总结

      本周完成了小学期遗留下的作业——实验报告,当时写的代码现在也遗忘了许多,虽然有很多注释,但是也花费了不少的时间去弄懂每一行所代表的意思是什么,之后完成了实验报告,对完成的系

    相关 13实验报告3

    第13周报告3: 实验目的:学会使用自定义函数解决实际问题,学会函数的嵌套调用 实验内容:编制一个三角函数表 程序头部注释开始(为避免提交博文