先将字符串转换成字符数组,然后用LinkedList将字符数组中的每个值用循环添加进去!例如:
String str = "sdfsdf";
Character cha[] = str.toCharArray;//将字符串转为字符数组
LinkedList link = new LinkedList();//声明一个双向链表的引用
for(i = 0;i<cha.length();i++){//循环将字符数组中的值加入链表中
    link.add(i,(String)cha[i].toString());
}
以上是我的思路,如果有错误还请高手们指点!
代码没有调试过,全凭记忆写的,希望对楼主有所帮助!!

解决方案 »

  1.   

    String str = "sdfsdf";
    char[] cha = str.toCharArray();//将字符串转为字符数组
    LinkedList link = new LinkedList();//声明一个双向链表的引用
    for(i = 0;i<cha.length;i++){//循环将字符数组中的值加入链表中
    link.add(i, String.valueOf(cha[i]));
    }
      

  2.   

    字符为节点--难
    因为向LinkedList add只能是Object 而不能是char等primary type。
      

  3.   

    snap2008cn(进京务工一周年)说的对啊,要先把char[] cha 转换为Character[] 啊、
      

  4.   

    我自己写了一个双向链表来实现。
    虽然 LinedList 是双向链表实现的,但是好像它没有提供相关的方法让我们像操作双向链表一样的操作它。package jamesfancy;/**
     * MyList
     * 
     * @author James
     */
    public class CharList {    CharNode first;
        CharNode last;    public void add(char ch) {
            CharNode node = new CharNode(ch);
            if (first == null) {
                first = node;
                last = node;
            } else {
                node.setPrevious(last);
                last.setNext(node);
                last = node;
            }
        }
        
        public void printList() {
            CharNode node = first;
            StringBuffer buffer = new StringBuffer();
            if (node != null);
            buffer.append(node.getData());
            node = node.getNext();
            while (node != null) {
                buffer.append(',');
                buffer.append(node.getData());
                node = node.getNext();
            }
            System.out.println(buffer);
        }
        
        public final static void main(String[] args) {
            String s = "James Fancy";
            CharList list = new CharList();
            for (int i = 0; i < s.length(); ++i) {
                list.add(s.charAt(i));
            }
            list.printList();
        }}class CharNode {    private char data;
        private CharNode next;
        private CharNode previous;    public CharNode(char ch) {
            this.data = ch;
        }    public char getData() {
            return data;
        }    public CharNode getNext() {
            return next;
        }    public CharNode getPrevious() {
            return previous;
        }    public void setData(char data) {
            this.data = data;
        }    void setNext(CharNode next) {
            this.next = next;
        }    void setPrevious(CharNode previous) {
            this.previous = previous;
        }
    }
      

  5.   

    to:wanglei810522  link.add(i,(String)cha[i].toString())通过不了编译的,会提示char cannot be dereferenced
      应该改为link.add(i,(cha[i]+""));
      

  6.   

    那最好是把 CharNode 改成 ObjectNode,数据为 Object 型的。
    然后,你自己定义一个数据结构,如
    CharNode {
        char data;
        String type;
    }
    然后添加和取出的时候都转型为 Object 型进行
    添加的时候系统会自动转型,取出的时候需要强制
    即 ObjectNode node = ...
    CharNode cn = (CharNode) node.data;
    这样
      

  7.   

    /*
     * @(#) ObjectList.java
     * Created on 2004-10-18
     * Created by James Fancy
     */
    package jamesfancy;/**
     * MyList
     * 
     * @author James
     */
    public class ObjectList {    ObjectNode first;
        ObjectNode last;    public void add(Object obj) {
            ObjectNode node = new ObjectNode(obj);
            if (first == null) {
                first = node;
                last = node;
            } else {
                node.setPrevious(last);
                last.setNext(node);
                last = node;
            }
        }    public void printList() {
            ObjectNode node = first;
            StringBuffer buffer = new StringBuffer();
            if (node != null)
                ;
            buffer.append(node.getData());
            node = node.getNext();
            while (node != null) {
                buffer.append(',');
                buffer.append(node.getData().toString());
                node = node.getNext();
            }
            System.out.println(buffer);
        }    public final static void main(String[] args) {
            String s = "James Fancy";
            ObjectList list = new ObjectList();
            for (int i = 0; i < s.length(); ++i) {
                list.add(new Character(s.charAt(i)));
            }
            list.printList();        // 如果你需要保存其它类型的数据比如下面定义的 MyObject
            list = new ObjectList();
            for (int i = 0; i < s.length(); ++i) {
                list.add(new MyObject(s.charAt(i), (int) s.charAt(i)));
            }
            list.printList();
        }}class ObjectNode {    private Object data;
        private ObjectNode next;
        private ObjectNode previous;    public ObjectNode(Object obj) {
            this.data = obj;
        }    public Object getData() {
            return data;
        }    public ObjectNode getNext() {
            return next;
        }    public ObjectNode getPrevious() {
            return previous;
        }    public void setData(Object obj) {
            this.data = obj;
        }    void setNext(ObjectNode next) {
            this.next = next;
        }    void setPrevious(ObjectNode previous) {
            this.previous = previous;
        }
    }class MyObject {
        protected char data;
        protected int attr;    private String toString;    public MyObject(char data, int attr) {
            this.data = data;
            this.attr = attr;
        }    public String toString() {
            if (toString == null) {
                StringBuffer buffer = new StringBuffer(10);
                buffer.append(data);
                buffer.append('[');
                buffer.append(attr);
                buffer.append(']');
                toString = buffer.toString();
            }
            return toString;
        }
    }