zoukankan      html  css  js  c++  java
  • Java实验3与第五周总结

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

    public class Test5 {
    	
    	String s = "this is a test of java";
    	static Test5 OneString = new Test5();
    	public static void main(String[] args) {
    		OneString.numberS();
    		OneString.numberIS();
    		OneString.numberwordIS();
    		OneString.reversal();
    	}
    	public void numberS() {
    		int number = 0;
    		for(int i = 0 ; i < s.length(); i++) {
    			char c = s.charAt(i);
    			if(c=='s') {
    				number++;
    			}
    		}
    		System.out.println("S出现次数"+number);
    	}
    	public void numberIS() {
    		int number = 0;
    		for(int i = 1 ; i < s.length() ; i++) {
    			char c = s.charAt(i-1);
    			char c1 = s.charAt(i);
    			if(c=='i'&&c1=='s') {
    				number++;
    			}
    		}
    		System.out.println("字符IS出现次数"+number);
    	}
    	public void numberwordIS() {
    		int number = 0;
    		String s[] = this.s.split(" ");
    		for(String s1 : s) {
    			if(s1.equalsIgnoreCase("is")) {
    				number++;
    			}
    		}
    		System.out.println("单词IS"+number);
    	}
    	public void reversal() {
    		StringBuilder word  = new StringBuilder();
    		for(int i = s.length()-1 ; i>=0 ; i--) {
    			char c = s.charAt(i);
    			word = word.append(s.charAt(i));
    		}
    		System.out.println("倒序输出 " + word);
    	}
    }
    

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

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

    import java.util.Scanner;
    public class Test52 {
    	
        static Scanner scanner = new Scanner(System.in);
    	public static void main(String[] args) {
    		StringBuilder s = new StringBuilder();
    	    String s2 = " ";
    		String s1 = scanner.next();
    		for(int i = 0 ; i < s1.length() ; i++) {
    			int c = s1.charAt(i);
    			if(c>=65 && c<=90) {
    				if(c==88) {
    					c = 65;
    				}else if(c==89) {
    					c = 66;
    				}else if(c==90) {
    					c = 67;
    				}else {
    					c+=3;
    				}
    				s2 = String.valueOf(s.append((char)c));
    			}else
    			if(c>=97 && c<=122) {
    				if(c==120) {
    					c = 97;
    				}else if(c==121) {
    					c = 98;
    				}else if(c==122) {
    					c = 99;
    				}else {
    					c+=3;
    				}
    				s2 = String.valueOf(s.append((char)c));
    			}
    		}
    		System.out.println("加密前 "+s1);
    		System.out.println("加密后 "+s);
    	}
    
    }
    

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

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

    public class Test53 {
    
    	static String s = "ddejjdsEFALDFfnef2357 3ed";
    	public static void main(String[] args) {
    		int Word = 0;
    		int word = 0;
    		int other = 0;
    		for(int i = 0;i < s.length();i++) {
    			char c = s.charAt(i);
    			if(c>='A' && c<='Z') {
    				Word++;
    			}else 
    			if(c>='a' &&c<='z') {
    				word++;
    			}else {
    				other++;
    			}
    		}
    		System.out.print("大写字母: "+Word+",小写字母 "+word+",其他 "+other);
    	}
    
    }
    

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

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

    加密

    import java.util.Scanner;
    public class Test532 {
       public static void main(String[] args) {
                   Scanner s=new Scanner(System.in);
                   String str = s.next();
                   char a[]= str.toCharArray();
                   char b[] = new char[10] ;
                   int n=0;
                   for(int i = a.length-3;i<a.length;i++) {
                       b[n]=a[i];
                           n++;
                   }
                   for(int j=0;j<a.length-3;j++) {
                       b[n]=a[j];
                           n++;
                   }
                      System.out.println(b);
               }
    }
    

  • 相关阅读:
    Entity SQL 初入
    ObjectQuery查询及方法
    Entity Framework 的事务 DbTransaction
    Construct Binary Tree from Preorder and Inorder Traversal
    Reverse Linked List
    Best Time to Buy and Sell Stock
    Remove Duplicates from Sorted Array II
    Reverse Integer
    Implement Stack using Queues
    C++中const限定符的应用
  • 原文地址:https://www.cnblogs.com/arthur-w/p/11593596.html
Copyright © 2011-2022 走看看