Skip to content

Latest commit

 

History

History
54 lines (41 loc) · 922 Bytes

Ex_1_2_05.md

File metadata and controls

54 lines (41 loc) · 922 Bytes
title date draft tags categories
算法4 Java解答 1.2.05
2019-02-22 07:35:22 +0800
false
JAVA
技术
归档

1.2.05

问题:

What does the following code fragment print?

String s = "Hello World";
s.toUpperCase();
s.substring(6, 11);
StdOut.println(s);

分析:

String对象是不可变的,所有字符串方法都会返回一个新的String对象,但它们不会改变原有对象的值。

这段代码忽略了返回的对象并直接打印了原字符串。

  public static void test2(){
    String s = "Hello World";
    s = s.toUpperCase();
    s = s.substring(6, 11);
    StdOut.println(s);
  }

  public static void test1(){
    String s = "Hello World";
    s.toUpperCase();
    s.substring(6, 11);
    StdOut.println(s);
  }

  public static void main(String[] args) {
    test1(); // Hello World
    test2(); // WORLD
  }

参考: