zoukankan      html  css  js  c++  java
  • 字符串相关问题

    1.请运行以下示例代码StringPool.java,查看其输出结果。如何解释这样的输出结果?从中你能总结出什么?

    1)输出结果

         

    (2)解释

        String不是基本数据类型,而是一个类,所以在比较他们的对象时比较的是地址。

    而且若是两个对象的内容相同,他们的地址也会相同。所以s0s1s2相等。而最后两个是因为他们两个位于不同的储存空间中,所以不相等。

    2.

    为什么会有上述的输出结果?从中你又能总结出什么?

    给字串变量赋值意味着:两个变量(s1s2)现在引用同一个字符串对象“a”!

    String对象的内容是只读的,使用“+”修改s1变量的值,实际上是得到了一个新的字符串对象,其内容为“ab”,它与原先s1所引用的对象”a”无关,所以,s1==s2返回false

    代码中的“ab”字符串是一个常量,它所引用的字符串与s1所引用的“ab”对象无关。

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

    如图所示为String.equals的实现代码,此代码先通过比较地址,再通过比较内容来实现字符串内容的比较。

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

     

    请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想、程序流程图、源代码、结果截图。

    1)设计思想

         通过对输入的字符串进行每个字符的提取,然后分别对每个字符进行加密。

    2)程序流程图

    (3)源代码

    //信1605-3 20163677 多文佳
    class
    jiami2 { String s; public jiami2(String s) { this.s=s; //通过构造函数来初始化需要加密或解密的字符串 } public void jiami1() { char m; for(int i=0;i<s.length();i++) { m=s.charAt(i); m=(char)(m+3); if(m==91) { m='A'; } else if(m==92) { m='B'; } else if(m==93) { m='C'; } System.out.print(m); } System.out.println(); } //通过循环依次对每个字符加密并输出 public void jiemi() { char m; for(int i=0;i<s.length();i++) { m=s.charAt(i); m=(char)(m-3); if(m==64) { m='Z'; } else if(m==63) { m='Y'; } else if(m==62) { m='X'; } System.out.print(m); } System.out.println(); //通过循环依次对每个字符解密并输出 } public static void main() { } } public class jiami{ public static void main(String args[]) { jiami2 a=new jiami2("AJIDHRUIHUS"); System.out.print("加密后为:"); a.jiami1(); //调用加密函数 System.out.print("解密后为:"); a.jiemi(); //调用解密函数 } }

    4)结果截图

     

    5.整理String类的Length()charAt()、 getChars()replace()、 toUpperCase()、 toLowerCase()trim()toCharArray()使用说明

    Length()是用来计算字符串的长度

    charAt()是用来取字符串的第几个字符

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

    replace()子串替换

    toUpperCase()、 toLowerCase()大小写转换

    trim()去除头尾空格

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

  • 相关阅读:
    AngularJs学习笔记Understanding the Controller Component
    AngularJs学习笔记Dependency Injection(DI,依赖注入)
    AngularJs学习笔记Forms
    AngularJs学习笔记Modules
    AngularJs学习笔记IE Compatibility 兼容老版本IE
    Oracle trigger Demo
    Debugging tips in VS
    Adding a Strong Name to an existing DLL that you don't have the source to
    Webservice
    Tips to import DB dump of a big size
  • 原文地址:https://www.cnblogs.com/duowenjia/p/7743492.html
Copyright © 2011-2022 走看看