【问题标题】:Array of character defined inside a quotation marks?引号内定义的字符数组?
【发布时间】:2012-10-24 08:31:57
【问题描述】:

我从这里得到了这个示例代码:

http://www.tutorialspoint.com/java/java_string_copyvalueof.htm

public class Test{
   public static void main(String args[]){
      char[] Str1 = "This is really not immutable!!";
      String Str2;

      Str2 = copyValueOf( Str1 );
      System.out.println("Returned String " + Str2);

      Str2 = copyValueOf( Str1, 5, 10 );
      System.out.println("Returned String " + Str2);

   }
}

此代码不适用于我。

  1. 字符数组定义为字符串。
  2. copyValueOf 无法识别!

现在我把它改成这样:

    char[] Str1 = {'t','o','o','k'};
      String Str2;

      Str2 = copyValueOf( Str1 );
      System.out.println("Returned String " + Str2);

      Str2 = copyValueOf( Str1, 5, 10 );
      System.out.println("Returned String " + Str2);

仍然 copyValueOf 不起作用? 我已经检查过这个方法,它存在于文档中!

【问题讨论】:

  • 你得到它的地方是发布 100% 非编译的驱动程序,以后应该避免。

标签: java string


【解决方案1】:
  1. 与 C 不同,char[] 不是 String,反之亦然。
  2. 你需要指定类:

    Str2 = String.copyValueOf( Str1 );
    

【讨论】:

  • 没错。现在它工作正常。愚蠢的网站放错了例子。感谢您的回复
【解决方案2】:

您的代码中可能缺少static import。将此添加到文件顶部:

import static java.lang.String.copyValueOf;

或者,您可以 (and perhaps should) 显式指定类。由于copyValueOf is a static member of String 看起来像这样:

String.copyValueOf(Str1);

【讨论】:

  • +1 我不知道静态导入(虽然我认为String.copyValueOf 更好)谢谢!
  • @Bernard - 那么您使用的代码示例可能适用于比您正在使用的更新版本的 Java。静态导入是 Java 5 的新功能。
  • @Bernard - 尝试从命令行运行命令java -showversion;如果java version "X.X.X" 数字小于1.5,您将无法使用静态导入。我想。我不是这个 Java 版本的专家...
  • @RichardJPLeGuen : 导入静态 java.lang.String.copyValueOf;对我不起作用,但是当我明确使用该类时,它可以正常工作。
  • @RichardJPLeGuen 这里是java版本“1.6.0_37”
【解决方案3】:

以下是问题:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多