0

我又卡住了。

我有 List<Node> node一些值 (6, 14) (6, 13) (6, 12)

显示为

for (Node n : node)
 System.out.print(n);

我不想更改列表类型,但想使用数字,例如 (6,14) 并将它们分别保存到 int 中。

int x = 6;
int y = 14;

我尝试了几件事,但似乎没有任何工作可以工作node.get(0),只是将整个节点显示为 0。

有任何想法吗?

4

3 回答 3

1

您的问题不清楚,但我将尝试通过以下假设来回答:

1)通过节点,你的意思是接口 org.w3c.dom.Node

2)节点中的每个元素(您的 List 变量)也是一个节点。

3)节点元素包含两个子节点。每个子节点由一个整数值组成。

如果上述假设是正确的,这里有一些代码可以从第一个列表元素中检索整数值。

Node element0 = node.get(0);
NodeList children = element0.getChildNodes();
Node intNode0 = children.item(0);
Node intNode1 = children.item(1);
int x;
int y;
try {
  x = Integer.parseInt(intNode0.getTextContent());
  y = Integer.parseInt(intNode1.getTextContent());
} catch (Exception e) {
  System.out.println("Child node is not integer value");
}

`

于 2013-06-08T01:12:32.987 回答
0

如果你使用 c++,我会告诉你,你可以使用运算符重载。在 System.out.print(n); c++ 中,看起来std::cout<<n;你可以打印任何你想要的东西,比如 6 或 14,甚至 6+14。但是在Java中,node.get(0)也许是唯一的方法,因为Java没有运算符重载,任何基于函数的运算符。您可以通过运算符重载使用函数做同样的事情。您可以通过 6 得到 6 n.get(0),也可以创建一个函数做 6+14。

于 2013-06-08T00:55:29.340 回答
0

看下面的代码

import java.util.ArrayList;
import java.util.List;


class Node {
private int x; 
private  int y;
public int getX() {
    return x;
}
public void setX(int x) {
    this.x = x;
}
public int getY() {
    return y;
}
public void setY(int y) {
    this.y = y;
}
public Node(int x, int y) {
    super();
    this.x = x;
    this.y = y;
}



}

public class stackov1 {

/**
 * @param args
 */
public static void main(String[] args) {



List<Node> node= new ArrayList();
node.add(new Node(10,12));
node.add(new Node(11,14));

for (Node n : node){
    System.out.println(n.getX());
    System.out.println(n.getY());
// System.out.print(n);
}
}

}
于 2013-06-08T01:24:26.167 回答