【问题标题】:Search for String in the queue在队列中搜索字符串
【发布时间】:2014-12-03 20:29:02
【问题描述】:

我对编程有点陌生,如果这是愚蠢的,请见谅..

我有一个字符串队列,我想要在此代码中搜索关于元素“E”的代码。 因为每次出现这个错误:

字符串不能转换为字符。

public class Queue<Character> {
private java.util.LinkedList<Character> list = new java.util.LinkedList<Character>();
public Queue() {
}
public void clear() {
list.clear();
}
public boolean isEmpty() {
return list.isEmpty();
}
public Character firstEl() {
return list.getFirst();
}
public Character dequeue() {
return list.removeFirst();
}
public void enqueue(Character el) {
list.addLast(el);
}
public String toString() {
return list.toString();
}

public static void main(String []arg) {
Queue<String> student = new Queue<String>();
student.enqueue("A");
student.enqueue("B");
student.enqueue("C");
student.enqueue("D");
student.enqueue("E");
student.enqueue("F");
System.out.println(student.toString());
String mStr = student.dequeue();
System.out.println(mStr + " came first and being served first");
}
}

【问题讨论】:

  • 这在 ideone (demo) 上运行良好。你在哪一行有问题?
  • 您使用的是什么编译器,您使用的是什么版本的 Java?这对我来说在 Java 7 中运行良好

标签: java queue


【解决方案1】:
student.enqueue("A");

应替换为:

student.enqueue('A');

双引号创建一个字符串,而 enqueue 需要一个字符。

【讨论】:

  • 操作员发布的代码可以正常工作。您提供的内容将导致运行时错误。
【解决方案2】:

“我有一个字符串队列,我想要在此代码中搜索关于元素“E”的代码”

我认为您是在要求代码在您的链接列表中查找某些元素?

public int find(java.lang.String string){
    for(int i = 0; i < list.size(); i++){
        if(list.get(i).equals(string)) return i;
    }
    return -1;
}

此代码将某个字符串作为参数,如果该元素存在于列表中,则返回找到它的索引。如果不存在,则返回-1。

如果您在打印出链表后立即执行System.out.println(student.find("E"));,您将得到 4。

【讨论】:

    猜你喜欢
    • 2022-11-05
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    相关资源
    最近更新 更多