为了理解某些代码的内部结构或错误的打印转储,我在Python和Emacs lisp中使用类似pp的函数.
现在我来到Java并寻找标准库或tecnique来获得OBJECT for Java的漂亮印刷表示.
似乎当前的Java规范允许在运行时内省Java对象.但内省可能不是那么强大.使用new Object [] arg 无法调用m(Object o)?
注意我不希望源代码美化!我正在寻找运行时漂亮的打印Java对象转储.
注2:这些问题相似但不完全相同:
int[] answer= new int[map.size()];
HashMap<String, Integer> map = new HashMap<String, Integer>();
for (int j=0; j<answer.length;j++){
int x=map.get(keys.get(j));
answer[j]=x;
}
return answer
Run Code Online (Sandbox Code Playgroud)
当我在循环中x使用打印时System.out.println(x),我得到了值,1, 2, 3但是当我返回答案并打印出来时,我得到了[I@9826ac5.知道为什么吗?
在我的应用程序中,需要打印数组的值。我不能使用任何循环或递归,并且想从 http 响应中打印所有值。有任何方法可以在不使用循环或递归的情况下打印 java 数组。例如,我有数组 int [] ={102,202,..12}。现在我想将值打印为
102,202 .. 12 . 没有必要维护订单。
我一直在努力寻找与我相似的问题将近2天希望我能找到答案,但不,我不能这样,我决定在这里问你们.
这种方法是打印出a的所有键和值HashMap<String, int[]> ratingmap.所以键是Strings,值是数组.我一直在努力,下面是我的代码.
public void showRatingsMap() {
for (String customer: ratingmap.keySet()) {
String key = customer.toString();
int[] value = ratingmap.get(key);
System.out.println("Customer: " + key + " - Rating: " + value);
}
}
Run Code Online (Sandbox Code Playgroud)
我现在真的很困惑,因为打印出的结果看起来像这样:
Customer: Douglas Anderson - Rating: [I@4f5b571e
Customer: Sidney - Rating: [I@75b49b45
Customer: Apollo - Rating: [I@243e0b62
Customer: Leslie - Rating: [I@655d6184
Run Code Online (Sandbox Code Playgroud)
正如我所期望的那样,评级是一个数组,但它总是表现为上面奇怪的组合:[I @ 2b9fd66a
有人可以指出导致问题的错误吗?
我目前正在使用数组,每次我需要打印一个我做一个for循环.
System.out.print("[");
for(int i = 0; i < arr.length; i++){
System.out.print(arr[i] + ", ");
}
System.out.println("]");
Run Code Online (Sandbox Code Playgroud)
这似乎是一个将内置到java中的功能(我正在使用java).是否有内置的方法来打印数组?
我想解析一个字符串,以便我可以构建一个XML文档.
我有:
String value = "path=/Some/Xpath/Here";
Run Code Online (Sandbox Code Playgroud)
我用这种方式解析了它:
private void parseXpath() {
String s = "path=/Some/Xpath/Here";
String[] tokens = s.split("/");
for(String t: tokens){
System.out.println(t);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
path=
Some
Xpath
Here
Run Code Online (Sandbox Code Playgroud)
如何完全删除"path ="?我只想要来自xpath的值?
编辑:
谢谢你的回复.
如何将此方法转换为返回String []的方法,
例:
private String[] parseXpath(String s) {
String[] tokens = s.replaceFirst(".*=", "").split("/");
for(String t: tokens){
System.out.println(t);
}
return tokens;
}
Run Code Online (Sandbox Code Playgroud)
我的输出是:
[Ljava.lang.String;@413849df
Run Code Online (Sandbox Code Playgroud)
如何让它返回我的字符串数组?
我正在开发一个简单易用的程序,使用for循环和while循环,并且ArrayIndexOutOfBoundsException发生了.
这是我的代码:
public class ForWhileLoops
{
public static void main(String[] args)
{
int[] mary = new int[30];
for(int a = 0; a < 31; a++)
{
mary[a]= a*3;
}
for(int b = 0; b < 31; b++)
{
System.out.println(mary);
}
int c = 0;
while(c < 31)
{
c++;
System.out.println(c);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是发生的错误:
java.lang.ArrayIndexOutOfBoundsException: 30
at ForWhileLoops.main(ForWhileLoops.java:9)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)
Run Code Online (Sandbox Code Playgroud) 伙计们,我想知道如何从数组中删除额外的逗号和空格?当我运行程序时,它给了我{1,2,3,4,5,}.我想要的是{1,2,3,4,5}.主要必须保持不变.PrintArray方法是我需要帮助的方法.
参考重复的问题陈述.这是不同的,因为它向用户询问数字并相应地打印数组.这不是一个重复的问题.
public static void printArray(int[] myArray)
{
System.out.print("[");
for(int i = 0; i < myArray.length; i++)
{
myArray[i] = i + 1;
System.out.print(myArray[i] + ", ");
}
System.out.println("]");
}
}
Run Code Online (Sandbox Code Playgroud) public static void main(String[] args) {
List<Integer> numbers1 = Arrays.asList(1,2,3);
List<Integer> numbers2 = Arrays.asList(3,4);
List<int[]> intPairs = numbers1.stream()
.flatMap(i -> numbers2.stream()
.filter(j -> (i+j)%3 == 0)
.map(j -> new int[]{i,j}))
.collect(Collectors.toList());
intPairs.stream().forEach(System.out::println);
}
Run Code Online (Sandbox Code Playgroud)
对于上面的代码,我得到的输出为:
[I@214c265e
[I@448139f0
Run Code Online (Sandbox Code Playgroud)
但我的期望是得到[(2, 4), (3, 3)].
你能指导我实现这一目标吗?
我想打印一个像表格一样的输入二维数组,即如果由于某种原因他们放入了所有1 ...
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
Run Code Online (Sandbox Code Playgroud)
就像上面这样,但在Java eclipse的控制台中,没有花哨的按钮和GUI,但在控制台中,这就是我所拥有的....
import java.util.Scanner;
public class Client {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int[][] table = new int[4][4];
for (int i=0; i < table.length; i++) {
for (int j=0; j < table.length; j++) {
System.out.println("Enter a number.");
int x = input.nextInt();
table[i][j] = x;
System.out.print(table[i][j] + " ");
}
System.out.println();
}
System.out.println(table);
}
}
Run Code Online (Sandbox Code Playgroud)
当我输入所有内容并且控制台终止时,这就是我得到的:
Enter a …Run Code Online (Sandbox Code Playgroud)