What could be done to alter this code so that instead of displaying values, it d
ID: 3593332 • Letter: W
Question
What could be done to alter this code so that instead of displaying values, it displayed random characters and would delete a character next to a special character. For instance "d" as a special character to delete, so something like "asdf" would display as "as."
class Link
{
public int iData;
public double dData;
public Link next;
public Link(int id, double dd)
{
iData = id;
dData = dd;
}
public void displayLink()
{
System.out.print("{" + iData + ", " + dData + "} ");
}
}
class LinkList
{
private Link first;
public LinkList()
{
first = null;
}
public void insertFirst(int id, double dd)
{
Link newLink = new Link(id, dd);
newLink.next = first;
first = newLink;
}
public Link find(int key)
{
Link current = first;
while(current.iData != key)
{
if(current.next == null)
return null;
else
current = current.next;
}
return current;
}
public Link delete(int key)
{
Link current = first;
Link previous = first;
while(current.iData != key)
{
if(current.next == null)
return null;
else
{
previous = current;
current = current.next;
}
}
if(current == first)
first = first.next;
else
previous.next = current.next;
return current;
}
public void displayList()
{
System.out.print("List (first-->last): ");
Link current = first;
while(current != null)
{
current.displayLink();
current = current.next;
}
System.out.println("");
}
}
class LinkList2App
{
public static void main(String[] args)
{
LinkList theList = new LinkList();
theList.insertFirst(22, 2.99);
theList.insertFirst(44, 4.99);
theList.insertFirst(66, 6.99);
theList.insertFirst(88, 8.99);
theList.displayList();
Link f = theList.find(44);
if( f != null)
System.out.println("Found link with key " + f.iData);
else
System.out.println("Can't find link");
Link d = theList.delete(66);
if( d != null )
System.out.println("Deleted link with key " + d.iData);
else
System.out.println("Can't delete link");
theList.displayList();
}
}
Explanation / Answer
Hello,
As per I understand, you need a method which accept a special character as an input and based on their index it delets that character and the immediate next to that character. Below function would resolve your issue, kindly let me know if you need any further explanation.
public Link modify(char spChar)
{
int index = data.indexOf(spChar);
if(index != -1)
data = data.substring(0,index-1) +data.substring(index+2);
else
System.out.println("character is not found in the link");
return this;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.