1121笔记

 

比较器???

 

Arr.java

//从数组a[]里,寻找who出现的次数

class Arr{

    public static void main(String args[]){

       int []a={0,6,9,18,3,9,43,7,9,10};

       int who=9;

       boolean isFound=false;

       int num=0;

      

       for(int i=0;i<a.length;i++){

           if(who==a[i]){

              System.out.println("位于:"+(i+1));    

              isFound=true;

              num++;

           }

       }

      

       if(!isFound){

           System.out.println("没有");    

       }else{

           System.out.println("FIND THE /"WHO/": "+num+" TIMES"); 

       }

    }

}

输出:

位于:3

位于:6

位于:9

FIND THE "WHO": 3 TIMES

 

----------------------------------------------------------------------

1mystring.indexOf(”s”)mystrings的位置,返回int。若返回-1表示没有找到。mystring.lastIndexOf (”s”),这个表示从mystring的尾开始比较。如果mystring.indexOf(”s”)==mystring.lastIndexOf (”s”),则smystring中只出现了一次,唯一。

2mystring.startsWith(”s”)mystring.endsWith(”s”)mystring中,是否以s开头(结尾),返回一个布尔值。

CheakEmail.java

//对输入的邮箱正确性,进行简单检测

import java.util.*;

public class CheakEmail {

    public static void main(String args[]){

       System.out.println("INPUT");

       Scanner s = new Scanner(System.in);      

       String data = s.next();

       CheakEmail.rule(data);

    }

    public static boolean rule(String d){

       if(d.indexOf("@")<0||d.indexOf(".")<0){   //1

           System.out.println("false beauce of rule1");

           return false;

       }

       if(d.startsWith("@")||d.endsWith(".")){   //2

           System.out.println("false beauce of rule2");

           return false;

       }

       if(d.lastIndexOf("@")!=d.indexOf("@")){   //1

           System.out.println("false beauce of rule3");

           return false;

       }

       if(d.indexOf("@")-d.indexOf(".")>1){       //1

           System.out.println("false beauce of rule4");

           return false;

       }

       System.out.println("true");

       return true;

    }

}

----------------------------------------------------------------------

 

1)  mystring.split(”,”)”,”mystring分割为数组。

[]arr= mystring.split(”,”)把分割的数组在[]arr中存入。

2)字符串特殊,在内存中保存在字符串池中,不可变性,进行增删改后需要重新赋值。

Fliter.java

//脏话过滤器,[]z为脏话词库,test为需要测试的话语。

public class Fliter {

    public static void main(String args[]){

       String []z="a,hot".split(",");//1

       String test="a j hot zss a zi hot ssws a";

       for(int i=0;i<z.length;i++){

           String q="";

           for(int j=0;j<z[i].length();j++){

              q=q+"*";

           }

           test=test.replaceAll(z[i], q); //2

       }

    System.out.println(test.toString());

    }

}

 

输出:* j *** zss * zi *** ssws *

----------------------------------------------------------------------

1Math.random()随机出0~1之间的小数。

GuessNum.java

//电脑随机100以内的整数ans,用户有7次机会去猜数字

 

import java.util.Scanner;

 

public class GuessNum {

    public static void main(String[] args) {

       int ans=(int)(Math.random()*100)+1; //1

       //System.out.println(ans);

   

       boolean ok = false;

      

       for(int i=0;i<7;i++){

           System.out.println("");

           System.out.println("输入1-100的数字");

           Scanner s = new Scanner(System.in);      

           int data = s.nextInt();

          

           if(data<ans){

              System.out.println("你的答案太小了");

           }else if(data>ans){ 

              System.out.println("你的答案太大了");          

           }else{

              System.out.println("正确");

              ok=true;

              break;

           }

       }

       if(!ok){

           System.out.println("");

           System.out.println("");

       }

    }

}

----------------------------------------------------------------------

1)  System.arraycopy(a, 0, b, 0, c)把数组[]a复制到数组[]b,从a的第0位开始,复制到b的第0位,共复制c个数据。

2)  数组的length是属性。而字符串的length()是方法,后者使用时需要加括号。

Ins.java

//num插入到数组[]a的第p个位置(从零开始)。

import java.util.Arrays;

public class Ins {

    public static void main(String args[]){

       int p=1;

       int num=4;

       int []a={1,3,5,7};

        int []b=new int[(a.length+1)]; //2

       System.arraycopy(a, 0, b, 0, a.length); //1

       for(int i=(b.length-1);i>p;i--){

           b[i]=b[i-1];

       }

       b[p]=num;

       System.out.println(Arrays.toString(b));

    }

}

输出:[1, 4, 3, 5, 7]

----------------------------------------------------------------------

1c=string.charAt(i)记住这个方法。

TestCharAt.java

//测试,练手,对字符串分割,里面元素单独打印,变化花样打印出来,闲的蛋疼。

public class TestCharAt {

    public static void main(String args[]){

       char c;

       String s="abcde";

       for(int i=0;i<s.length();i++){

           c=s.charAt(i); //1

           System.out.println(c);

       }

       System.out.println("---------");

       for(int i=0;i<s.length();i++){

           c="abcde".charAt(i);

           for(int j=0;j<i;j++){

              System.out.print("  ");

           }  

           System.out.println(c);

       }     

    }

 }

输出:

a

b

c

d

e

---------

a

  b

    c

      d

        e

----------------------------------------------------------------------

1) Person类里,重写了compareTo()方法,在排序的时候用到。

2) Person类里,重写了toString()方法,在打印时候用到。

3) Person类里,重写了equals()方法,比较俩类相同与否时候到。

4Arrays.sort(m)对数组m进行排序。

5)如果用到比较,需要实现Comparable接口。

6)与null比较 只能==,不能用.equals,否则空指针异常。

 

 

//比较两个自定义的Person类。进行排序输出。

 

TestCompare.java

import java.util.Arrays;

 

public class TestCompare {

    public static void main(String args[]){

    Person[] m=new Person[3];

   

    m[0]=new Person(23,"alex");

    m[1]=new Person(34,"jim");

    m[2]=new Person(18,"jim");

   

System.out.println(m[1].equals(m[2])); //3

    System.out.println(m[1].compareTo(m[0])); //1

    Arrays.sort(m); //1)、(4

    System.out.println(Arrays.toString(m)); //2

    }

}

 

Person.java

public class Person implements Comparable{//4

    private int age;

    private String name;

   

    Person(int a,String b){

       this.age=a;

       this.name=b;

    }

    public int getAge() {

       return age;

    }

    public void setAge(int age) {

       this.age = age;

    }

    public String getName() {

       return name;

    }

    public void setName(String name) {

       this.name = name;

    }

public boolean equals (Object obj){ //3

        if (obj==null) return false; //6

    if (!(obj instanceof Person)) return false;

       Return this.name.equalsIgnoreCase(((Person)obj).name);     

    }  

    public String toString(){//2

       return "<-"+this.age+"|"+this.name+"->";

    }

    public int compareTo(Object obj){ //1

       Person p=(Person)obj;

       return this.age-p.getAge();

    }

}

TestCompare的输出结果:

true

11

[<-18|jim->, <-23|alex->, <-34|jim->]

 

----------------------------------------------------------------------

StringBufferDemo.java

提高字符串累加效率。

public class StringBufferDemo {

 

    public static void main(String[] args) {

       StringBuffer sob = new StringBuffer();

       sob.append("a");

       sob.append("b");

       sob.append("c").append("d").append("e");

       String s = sob.toString();

       System.out.println(s);

      

       long start = System.currentTimeMillis();

       StringBuffer sb = new StringBuffer(99999);

       for (int i = 0; i < 99999; i++) {

           sb.append("1");

       }

       long end = System.currentTimeMillis();

       System.out.println(end - start);

      

        start = System.currentTimeMillis();

       String t="";     

       for (int i = 0; i < 99999; i++) {

           t=t+"1";

       }

       end = System.currentTimeMillis();

       System.out.println(end - start);

    }

}

输出:

abcde

47

63078

----------------------------------------------------------------------

StringDemo.java

简单实现加密解密

public class StringDemo {

 

    public static void main(String[] args) {

      

       String s = "I love you!";

       String s2 = 加密(s);

       String s3 = 解密(s2);

       System.out.println(s2);

       System.out.println(s3);

      

    }

 

    public static String 加密(String t) {

       String s = "";

       for (int i = 0; i < t.length(); i++) {

           s+=(char)(t.charAt(i) + i * 2 + 1);

       }

       return s;

    }

    public static String 解密(String t) {

       String s = "";

       for (int i = 0; i < t.length(); i++) {

           s+=(char)(t.charAt(i) - i * 2 - 1);

       }

       return s;

    }

}

输出:

J#qvp-???6

I love you!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值