相关疑难解决方法(0)

打印Java数组最简单的方法是什么?

在Java中,数组不会覆盖toString(),因此如果您尝试直接打印数组,则会获得className + @ + className数组的十六进制,如下所示hashCode:

int[] intArray = new int[] {1, 2, 3, 4, 5};
System.out.println(intArray);     // prints something like '[I@3343c8b3'
Run Code Online (Sandbox Code Playgroud)

但通常我们实际上想要更像的东西Object.toString().这样做最简单的方法是什么?以下是一些示例输入和输出:

// Array of primitives:
int[] intArray = new int[] {1, 2, 3, 4, 5};
//output: [1, 2, 3, 4, 5]

// Array of object references:
String[] strArray = new String[] {"John", "Mary", "Bob"};
//output: [John, Mary, Bob]
Run Code Online (Sandbox Code Playgroud)

java printing arrays

1852
推荐指数
20
解决办法
217万
查看次数

为什么java.util.Observable不是抽象类?

我刚才注意到java.util.Observable是一个具体的类.由于Observable的目的是扩展,这对我来说似乎很奇怪.有没有理由以这种方式实施?

我发现这篇文章说的是

observable是一个具体的类,因此必须事先确定从中派生的类,因为Java只允许单继承.

但这并没有真正向我解释.实际上,如果Observable是抽象的,那么用户将被迫确定从中派生的类.

java observable

49
推荐指数
2
解决办法
9594
查看次数

将数组中的元素连接到字符串

我有点困惑.我无法在任何地方找到答案;(

我有一个String数组:

String[] arr = ["1", "2", "3"];
Run Code Online (Sandbox Code Playgroud)

然后我将它转换为字符串:

String str = Arrays.toString(arr);
System.out.println(str);
Run Code Online (Sandbox Code Playgroud)

我期望得到字符串"123",但我得到了字符串"[1,2,3]".

我怎么能在java中做到这一点?我正在使用Eclipse IDE

java arrays string converter

33
推荐指数
6
解决办法
16万
查看次数

Java char [] toString

我正在用char[]Java编写循环,并使用下面的示例代码:

char[] str = "Hello World !".toCharArray();
System.out.println(str.toString());
System.out.println(str);
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

[C@4367e003
Hello World !
Run Code Online (Sandbox Code Playgroud)

我对此有一些疑问:

  1. 什么[C@4367e003代表什么?它是一个内存地址吗?数字的含义是什么?这是什么意思[C@

  2. 我一直以为调用println()一个对象会调用这个对象的toString方法,但似乎不是这样吗?

谢谢 !!

java tostring char

5
推荐指数
1
解决办法
4301
查看次数

找不到另一个类文件的符号

我有几次这个问题,我创建了另一个类文件,主类文件找不到它.这是主类文件:

package textfiles;

import java.io.IOException;
 public class FileData
 {

public static void main(String[] args)
{
    String file_name = "Lines.txt";

    try {
        ReadFile file = new ReadFile(file_name);
        String[] aryLines = file.OpenFile();

        for(int i =0; i<aryLines.length; i++)
        {
            System.out.println(aryLines);
        }
    }

    catch(IOException e)
    {   
        System.out.println(e.getMessage());
    }
}
  }
Run Code Online (Sandbox Code Playgroud)

这是它找不到的类文件:

package textfiles;

import java.io.IOException;
import java.io.FileReader;
import java.io.BufferedReader;

 public class ReadFile
 {
private String path;
int numberOfLines=0;

public ReadFile(String file_path)
{
    path = file_path;
}

public String[] OpenFile() throws IOException
{
    FileReader fr …
Run Code Online (Sandbox Code Playgroud)

symbols class file find

2
推荐指数
2
解决办法
3万
查看次数

打印数组:内存地址或其内容?

你能解释为什么这个代码

int[] test={0,0,0,0,0};
System.out.println(test);
Run Code Online (Sandbox Code Playgroud)

打印像[I @ 42e816(也许是内存地址)但是这段代码

 Stack<Integer> stack = new Stack<Integer>();
 stack.push(1);
 stack.push(3);
 stack.push(5);
 stack.push(2);
 stack.push(4);
 System.out.println(stack);
Run Code Online (Sandbox Code Playgroud)

打印"[1,3,5,2,4]"?有什么不同?

如果Stacks派生自数组中的Vectors和Vectors,那么这种不同行为的原因是什么?

java arrays vector

1
推荐指数
1
解决办法
2839
查看次数

数组返回内存分配而不是Java中的值

考虑一个像这样的简单案例:

public static void array()
{
    String myString = "STACKOVERFLOW";
    int [] checkVal = new int[myString.length()];

    for(int i=0; i<myString.length();i++){
        checkVal[i] = (int)myString.charAt(i);
    }

    System.out.println(checkVal[0]);
    System.out.println(checkVal[1]);
    System.out.println(checkVal[2]);
    System.out.println(checkVal[3]);
    System.out.println(checkVal[4]);
    System.out.println(checkVal);
}
Run Code Online (Sandbox Code Playgroud)

这将输出以下内容:

83
84
65
67
75
[I@fc9944
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释一下吗?如何从Array中检索正确的信息而不是内存分配?

java arrays for-loop casting output

0
推荐指数
1
解决办法
6359
查看次数

标签 统计

java ×6

arrays ×4

casting ×1

char ×1

class ×1

converter ×1

file ×1

find ×1

for-loop ×1

observable ×1

output ×1

printing ×1

string ×1

symbols ×1

tostring ×1

vector ×1