课堂作业四之字符串的动手动脑 及相关解答

1.

解释及总结:java中,内容相同的字符串常量只保存一份,即上述三者内存地址一样,即同一个对象;java语言定义的“+”运算符可以用于两个字符串的链接操作(如果字符串与其他类型的变量进行+运算,系统自动将其他类型的数据类型转换为字符串类型),这种优化工作由java编译器自动完成;当使用new关键字创建字符串对象时,虽然值一致,但是创建了两个对象,内存地址不同,所以除了对象的赋值,直接判等都是false。

解释:s2=s1属于对象的赋值,两者的内存地址是一致的,即此时两个变量现在引用的是同一个字符串对象,所以第一个判等s1==s2是true的;再看,接下来用了+运算符,作字符串的连接,使之成为新的字符串ab,此时对象s2未变,s1变了,理所是false。string对象的内容是只读的,使用了+运算符实际上得到了一个新的字符串对象;代码中的“ab”是一个字符串常量,他所引用的字符串与s1所引用的“ab”对象无关;字符串常用函数String.equals()和qaualsIgnoreCase()的方法比较两字符串内容是否相等;使用判断等==比较两字符串变量是否引用的同一字符串对象,如下代码:

 

2.

如下:

(1)equals方法的定义(String类中的equals方法是对父类Object类中的equals方法的覆盖()):

(2)Object类的equals方法(直接return (this==obj)此处 某个对象调用该方法,this 就指代那个对象。):

(3)equals如何判断:

 判断条件:

    若当前对象和比较的对象是同一个对象,即return true。也就是Object中的equals方法。

    若当前传入的对象是String类型,则比较两个字符串的长度,即value.length的长度。

    若长度不相同,则return false

    若长度相同,则按照数组value中的每一位进行比较,不同,则返回false。若每一位都相同,则返回true。

    若当前传入的对象不是String类型,则直接返回false。

3.字符串常用功能:

  1、String.equals():用来检测两个String类型的对象是否相等,不能简单用“==”来判断两个字符串内容相等。

  2、Length():可以求出一个字符串的长度。

  3、charAt():用于返回指定索引处的char值。

  4、getChars():将字符从此字符串复制到目标字符数组。 

  5、replace():用于在字符串中用一些字符替换另一些字符。

  6、toUpperCase():把字符串转换成大写。

  7、toLowerCase():把字符串转换成小写。

  8、trim():获得对象的字段的值,然后转成string类型,并且去掉前后空白。

  9、toCharArray():将一个字符串内容转换为字符数组

      10、subString():提取字符串

       11、concat():字符串连接

  12、String.valueOf():将其他类型的数据转为字符串

  13、对于古罗马皇帝凯撒的加密军事情报解答:先定义字符串,之后输入字符串,算出字符串的长度,用for循环进行字符串的加密,运用ASCLL码表,进行加密,如果是xyz就减23,XYZ同理,其余的就正常加3,最后将加密的字符加到一个空的String类型的成员上,最后输出结果即可。

4.

解答:

源代码如下:


public class Four{
public static void main( String args[] )
{
MyCounter coun1=new MyCounter();
MyCounter coun2=new MyCounter();
coun1.set(1);
coun2=coun1.increase(100).decrease(2).increase(3);
System.out.println(coun2.data);
}
}
class MyCounter
{
public int data;
public void set(int x)
{
data=x;//设置函数
}
public MyCounter increase(int i)//类类型
{
MyCounter a=new MyCounter();
a.data=data+i;
return a;//加
}
public MyCounter decrease(int d)
{
MyCounter a=new MyCounter();
a.data=data-d;
return a;//减
}
}

运行结果:

 

原文地址:https://www.cnblogs.com/mm20/p/7726299.html