java - 从链接列表中选择某些字符串

标签 java linked-list nodes

我有一个使用节点的链表。我让它按字母顺序打印出来,但现在我试图打印出名字以用户要求的某个字母开头的人。例如:打印出所有名字以“A”开头的人。我确信这不是我目前所拥有的最好的方法,但我只是在尝试不同的东西,而且我对链表还很陌生。非常感谢任何提示或建议或提示。

这是我认为可能有用的东西:

       public void findSameStartingLetter(BigNode front, String letter) {
       BigNode curr;
       curr = front; 
       String name;
       name = curr.dataitems;
       String d;
    //   char c; 
          while (curr.next != null){

              d = name.substring(0, 1);
            if (d.equals(letter)) {
                System.out.println(d);
              curr = curr.next;

         // for(int i=0; i < 1; i++) { 
              //  c = letter.charAt(i);
        //  }
              } 

          }
   }

最佳答案

看起来您需要读取循环内节点上的人员姓名,而不是读取名字然后不再为该变量赋值。

您还应该检查当前节点是否为空,而不是下一个节点。如果您检查下一个,您将错过列表中的姓氏。

此外,请确保列表上的指针移动是在 if 之外完成的,因为我们要检查下一个节点而不管名称是什么。

抛开逻辑不谈,看来你对java有点不适应。要清理您的示例,您可以使用 java 功能在一行上删除和分配值。

此外,Java 的字符串有一个 startWith 方法,而不是做一个子字符串并比较子字符串,它也应该做这个技巧。干得好!

public void findSameStartingLetter( BigNode front, String letter )
    {
        BigNode curr = front;
        while( curr != null )
        {
            String name = curr.dataitems;
            if( name.startsWith( letter ) )
            {
                System.out.println( name );
            }
            curr = curr.next;
        }
    }

关于java - 从链接列表中选择某些字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7772169/

相关文章:

java - 使用 swap 方法反转泛型 LinkedList

c - 如何将结构列表添加到现有结构

aws-lambda - AWS 多个 Lambda 在同一个项目中

java - 在使用 Lucene 建立索引期间搜索没有响应

java - 带有 5 个进度条的评级进度图表

java - CompletableFuture 执行中出现意外的空值

java - 只绘制应该在屏幕上的节点?

java - 如何调用此递归最长递增子序列函数

c++ - 链表实现问题

sockets - 如何使用NodeJS将监听一个端口的WebSocket连接到监听另一个端口的Net socket?