将整数转换为链接列表的字符串?

时间:2013-11-22 22:57:47

标签: java linked-list typeconverter

对于模糊的信息,我们深表歉意。这是我正在尝试的。我正在尝试创建一个方法,它接受我的对象LString并将整数参数转换为对象LString。这是使用链接列表。我有一个Node类来构造和初始化节点。这是我完成项目的最后一种方法。

然而,我很困惑如何去做。我一直在使用链表和节点创建一个字符串类。如何将此整数参数转换为我的LString对象类型?

以下是我的LString类的一些与问题相关的部分:

public class LString{

   private Node front ;  //first val in list    *******CHANGED
   private Node back;   //last val in list
   private int size = 0;
   private int i;
   private int offset;

   public LString(){
      //construct empty list
      Node LString = new Node();
      front = null;

   }

   //return value of specified index
   public char charAt(int index){
      Node current = front;
      for(int i = 0; 0 < index; i++){
         current = current.next;
      }
      return current.data;

   }

   //return number of chars of lstring
   public int length(){
      int count = 0;
      Node current = front;
      while(current != null){
         current = current.next;
         count++;
      }
      return count++;

   }

   public String toString(){
      if(front == null){
         return "[]";
      } else {
         String result = "[" + front.data;
         Node current = front.next;
         while(current != null){
            result += current.data; //might need to add ", page 967
            current = current.next;
         }
         result += "]";
         return result;
      }   
   }

// * *** 我的尝试虽然非常错误 *

   public static LString valueOf(int i){
    int c;
    char m;
    LString ans = new LString(); 
    Node current = new Node();
    // convert the String to int
    for(int w = i;w < i; w++) {
        c = i % 10;
        i = i / 10;
        m = (char) ('0' + c);
    }
    return ans;           
}

我的节点类:

public class Node{
   public char data;
   public Node next;

   //constructors from page 956
   public Node()
   {
      this('\0',null);  //'\0' is null char for java
   }

   public Node(char initialData, Node initialNext)
   {
      data = initialData;
      next = initialNext;
   }

   public void addNodeAfter(char element)   
   {
      next = new Node(element, next);
   }

   public char getData()
   {
      return data;
   }

   public Node getNext(){  
      return next;   
   }

   public void setNext(Node n){
      next = n;
   }

   public void setData(char d){
      data = d;
   }
}

2 个答案:

答案 0 :(得分:2)

你不能创建LinkedList<int>因为泛型类型不能是原语,但是说过,很容易将Integers添加到LinkedList而不需要将它们“转换”为String。

即使用LinkedList<Integer>

否则,如果这不能解答您的问题,请告诉我们更多有关实际问题的信息,而不是您提出的代码解决方案。我怀疑你的问题实际上是伪装XY-problem

答案 1 :(得分:1)

你可以使用迭代来做到这一点 然后使用Integer.toString方法将每个元素从Integer转换为String。

LinkedList<String> strings = new LinkedList<String>();
for(LinkedList<Integer> item : integers ){
   strings.add(Integer.toString(item));
}

这对你有用。