csci1913/lab5.java

62 lines
1.7 KiB
Java
Raw Permalink Normal View History

2018-01-29 23:37:09 +00:00
class Pathname {
private int depth;
private String[] directories;
private String name;
private String type;
public Pathname(String name) {
this(name, "");
}
public Pathname(String name, String type) {
this.depth = 0;
this.directories = new String[10];
this.type = type;
this.name = name;
}
public void addDirectory(String directory) {
if (this.depth >= 10) return;
this.directories[this.depth++] = directory;
}
public boolean equals(Pathname other) {
if (this.depth != other.depth) return false;
for (int i = 0; i < this.depth; i += 1) {
if (this.directories[i] != other.directories[i]) return false;
}
return true;
}
public String toString() {
String result = "";
for (int i = 0; i < this.depth; i += 1) {
result += "/" + this.directories[i];
}
result += "/" + this.name;
if (this.type != "") {
result += "." + this.type;
}
return result;
}
}
class Pathfinder
{
public static void main(String [] args)
{
Pathname p0 = new Pathname("coffee", "java");
p0.addDirectory("home");
p0.addDirectory("Desktop");
p0.addDirectory("labs");
System.out.println(p0); // Prints /home/Desktop/labs/coffee.java
Pathname p1 = new Pathname("cola");
p1.addDirectory("home");
p1.addDirectory("hax");
System.out.println(p1); // Prints /home/hax/cola
Pathname p2 = new Pathname("tea");
System.out.println(p2); // Prints /tea
System.out.println(p0.equals(p0)); // Prints true
System.out.println(p0.equals(p1)); // Prints false
System.out.println(p1.equals(p2)); // Prints false
System.out.println(p0.equals("Not a pathname")); // Prints false
}
}