课堂作业04 2017.10.27

请查看String.equals()方法的实现代码,注意学习其实现方法。

package sum;

public class StringEquals {

/**

     * @param args the command line arguments

     */

   

         public static void main(String[] args) {

       

                  String s1=new String("Hello");

       

                  String s2=new String("Hello");

 

       

                  System.out.println(s1==s2);

       

                  System.out.println(s1.equals(s2));

 

       

                  String s3="Hello";

       

                  String s4="Hello";

 

         

                  System.out.println(s3==s4);

       

                  System.out.println(s3.equals(s4));

        

         }

}

 

 

字符串进行比较是比较的地址是否一样,而不是内容是否相等,

而要比较内容是否相等要调用方法

使用equals()或equalsIgnoreCase()方法比较两字串内容是否相同,使用==比较两字串变量是否引用同一字串对象:Demo: StringEquals.ava

compareTo:使用字典法进行比较,返回0表两字串相等,小于返回负值,大于返回正值

regionMatches:比较两字串中的某一部分是否相等。示例:StringCompare.Java

查询字串是否以某字串开头和结尾:startsWith和endWith方法 。Demo: StringStartEnd.java

在字串查找字符或子串,调用indexOf和lastIndexOf方法即可。Demo:StringIndexMethods.java

 

课后作业1:字串加密

 

 

古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:

请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想、程序流程图、源代码、结果截图。(截止时间2017-10-27晚18:00)

设计思想:通过将字符串拆分,转换为ascii码的加减,再将其输出

 

 

//陈天时  20163591 信1605-3

package zichuanjiami;

import java.util.Scanner;

public class Zichuanjiami

{

    public static void main(String[] args)

    {

       int key=3;

       Scanner input=new Scanner(System.in);

       System.out.print("请输入要加密的字符串:");

       String string=input.nextLine();

       char[] str=new char[string.length()];

       String jiami=" ";

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

       {

           char s=string.charAt(i);

           if(s>='x'&&s<='z')

           {

              s=(char) (s-26);

              s=(char) (s+key);

           }

           else

           {

              s=(char) (s+key);

           }

           jiami=jiami+s;

       }

       System.out.println("加密后的字符串为:"+jiami);

    }

}

 

String str=”abcd”

Length() 获取字串长度

用法:str.length()=4  获取字串长度(int类型)

charAt()、获取指定位置的字符

用法:

str.charAt(0)=”a”

str.charAt(1)=”b”

str.charAt(2)=”c”

str.charAt(3)=”d”

getChars()获取从指定位置起的子串复制到字符数组中(它有四个参数,在示例中有介绍)

用法:

//四个参数的含义

    //1.被拷贝字符在字串中的起始位置

    //2.被拷贝的最后一个字符在字串中的下标再加1

//3.目标字符数组

//4.拷贝的字符放在字符数组中的起始下标

public void getChars(int start,int end,char c[],int offset)

         该方法的作用是将当前字符串从start到end-1位置上的字符复制到字符数组c中,并从c的offset处开始存放

 

 

eg:public class class6_2

       {

             public static void main(String args[])

             {

                    String s=new String("巴西足球队击败德国足球队");

                    char[] c=new char[s.length()];

 

                    s.getChars(7,12,c,0);

                    System.out.println(c);

 

                    s.getChars(5,7,c,5);

                    System.out.println(c);

 

                    s.getChars(0,5,c,7);

                    System.out.println(c);

                    

             }

       }

运行以后的结果为

德国足球队

德国足球队击败

德国最球队击败巴西足球队

replace()、子串替换

用法:

public class Test {

    public static void main(String args[]) {

        String Str = new String("hello");

 

        System.out.print("返回值 :" );

        System.out.println(Str.replace('o', 'T'));

 

        System.out.print("返回值 :" );

        System.out.println(Str.replace('l', 'D'));

    }

}

返回值 :hellT

返回值 :heDD

toLowerCase()方法

一、说明:把输入字符串中的大写字母全部变成小写字符。
二、实例:
var str = “JavaScript”;
var newStr = str.toLowerCase();
注意:对中文没影响;
toUpperCase()方法

一、说明:把输入字符串中的小写字母全部变成大写字符。
二、实例:
var str = “JavaScript”;
var newStr = str.toUpperCase();
注意:对中文没影响

 

trim()去除头尾空格:

用法:

String s=" abc ";
String s2=s.trim();

s2="abc"

toCharArray()将字符串对象转换为字符数组

public class MyTest1

{

public static void main(String[] args) {
String str = "I am a String";
char arr[] = str.toCharArray();
for (int i = 0; i < arr.length; i++)
System.out.println("arr[" + i + "]=" + arr[i]);
}
}

 

String类的方法可以连续调用:

String str="abc";

String result=str.trim().toUpperCase().concat("defg");

请阅读JDK中String类上述方法的源码,模仿其编程方式,编写一个MyCounter类,它的方法也支持上述的“级联”调用特性,其调用示例为:

MyCounter counter1=new MyCounter(1);

MyCounter counter2=counter1.increase(100).decrease(2).increase(3);

 

 

package myCounter;

public class MyCounter

{

    int counter=0;

    public  MyCounter increase(int increase)

    {

       counter=counter+increase;

       return this;

    }

    public MyCounter decrease(int decrease)

    {

       counter=counter-decrease;

       return this;

    }

    public static void main(String[] args)

    {

       MyCounter counter1=new MyCounter();

       MyCounter counter2=counter1.increase(100).decrease(2).increase(3);

       System.out.println("结果为:"+counter2.counter);

    }

}   

 

 

posted @ 2017-10-27 16:24  cts1234  阅读(114)  评论(0编辑  收藏  举报