当前位置: 首页 > 知识库问答 >
问题:

在Java中使用链表/邻接图中的文本文件字符串

慕容超
2023-03-14

好的,我当前的代码使用整数创建了一个列表,但是我希望它使用字符串。我要使用的字符串位于一个名为names.txt的文本文件中,该文件如下所示:

Peter
Simon
Mark
Matthew
Paul
Luke

我的代码如下:

import java.util.*;

class Graph1{
    class Edge{
         String v;
         public Edge(String v){
            this.v = v; 

        }

         public String toString(){
            return "(" + v + ")";
        }
    }
    List<Edge> G[];
    public Graph1(int n){
        G=new LinkedList[n];
        for(int i=0;i<G.length;i++)
            G[i]=new LinkedList<Edge>();
    }
    boolean isConnected(int u,String v){
        for(Edge i: G[u])
            if(i.v==v) return true;
        return false;
    }
    void addEdge(int u,String v){ 
        G[u].add( 0,new Edge(v) );  

    }

    public String toString(){
        String result="";
        for(int i=0;i<G.length;i++)
            result+=i+"=>"+G[i]+"\n";
        return result;
    }
}
public class GraphExample {
    public static void main(String[] args) {
        Graph1 g=new Graph1(6);
        g.addEdge(0, "Simon");
        g.addEdge(0, "Peter");
        g.addEdge(2, "Matthew");
        g.addEdge(9, "Mark");

        System.out.println(g);
        System.out.println(g.isConnected(1,"Peter"));
    }
}

这给出了输出:

0=>[(Peter), (Simon)]
1=>[]
2=>[(Matthew)]
3=>[]
4=>[]
5=>[(Mark)]

false

然而,不是0,1,2等,我想让它读彼得,西门,马可等。

谢谢!

共有1个答案

谢昂雄
2023-03-14

您必须读入文件的行:

List<String> lines = Files.readAllLines(Paths.get("names.txt"));

并使其可用于您的图形。在toString()中,使用以下列表获取名称:

public String toString(){
    String result="";
    for(int i=0;i<G.length;i++)
        result+=lines.get(i)+"=>"+G[i]+"\n";
    return result;
}
 类似资料:
  • 菜鸟来了!我想实现一个类图形,可以表示一个未加权和无向图使用邻接列表。基本功能应该包括添加和删除顶点和边,以及将图形打印到命令行。我的主要问题是我很难将文件读入图表。我做错了什么? 我的文本文件如下所示: (每条线代表由一条边连接的两个节点)。 我的代码是: } 输出为:

  • 本文向大家介绍使用Java计算文本文件中的字符数,包括了使用Java计算文本文件中的字符数的使用技巧和注意事项,需要的朋友参考一下 我们可以使用Java的BufferedReader类读取文件中的字符。请参阅下面的示例- 示例 在类路径中请看以下文本文件。 test.txt 测试器 这将产生以下结果- 输出结果

  • 问题内容: 我需要打开一个文本文件并替换一个字符串。我需要这个 到目前为止,这是我所拥有的,但是除了多余的空格外,我看不到文本文件中的任何更改。 我该怎么做? 问题答案: 这项工作:

  • 问题内容: 在x86_64 linux上使用gcc和ld我需要链接到库的新版本(glibc 2.14),但是可执行文件需要在具有旧版本(2.5)的系统上运行。由于唯一不兼容的符号是memcpy(需要memcpy@GLIBC_2.2.5,但提供memcpy@GLIBC_2.14的库),我想告诉链接器,它应该使用我指定的旧版本,而不是使用memcpy的默认版本。 。 我发现这样做很尴尬:只需在链接器命

  • 问题内容: 我有一个名为log.txt的文本文件,它具有以下数据 第一个逗号之前的数字是指定每个项目的索引。 我想做的是读取文件,然后将给定行中字符串的一部分(例如textFiles / a.txt)替换为另一值(例如something / bob.txt)。 这就是我到目前为止 问题答案: 一种方法是使用: 您还可以使用正则表达式,或查找搜索字符串在一行中的何处。

  • 问题内容: 假设我的网页上有这些元素。 我想单击带有文本的链接。如何使用 链接文本 来识别或单击该元素,而没有任何独特的属性,例如id或class。 在.Net中,我可以使用。nightwatch.js中的等效项是什么 问题答案: 定位器在内部使用XPath。 因此,使用XPath单击示例中的第二个链接: 请注意,根据内部HTML的不同,您可能需要连接子级并修剪空格: