1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Katena32 [7]
3 years ago
13

This question involves the creation of user names for an online system. A user name is created based on a user’s first and last

names. A new user name cannot be a duplicate of a user name already assigned. You will write the constructor and one method of the UserName class. A partial declaration of the UserName class is shown below.
public class UserName

{

// The list of possible user names, based on a user’s first and last names and initialized by the constructor.

private ArrayList possibleNames;



/** Constructs a UserName object as described in part (a).

* Precondition: firstName and lastName have length greater than 0

* and contain only uppercase and lowercase letters.

*/

public UserName(String firstName, String lastName)

{ /* to be implemented in part (a) */ }



/** Returns true if arr contains name, and false otherwise. */

public boolean isUsed(String name, String[] arr)

{ /* implementation not shown */ }



/** Removes strings from possibleNames that are found in usedNames as described in part (b).

*/

public void setAvailableUserNames(String[] usedNames)

{ /* to be implemented in part (b) */ }

}

(a) Write the constructor for the UserName class. The constructor initializes and fills possibleNames with possible user names based on the firstName and lastName parameters. The possible user names are obtained by concatenating lastName with different substrings of firstName. The substrings begin with the first character of firstName and the lengths of the substrings take on all values from 1 to the length of firstName.

The following example shows the contents of possibleNames after a UserName object has been instantiated.

Example

UserName person = new UserName("john", "smith");

After the code segment has been executed, the possibleNames instance variable of person will contain the following String objects in some order.

"smithj", "smithjo", "smithjoh", "smithjohn"

Write the UserName constructor below.

/** Constructs a UserName object as described in part (a).

* Precondition: firstName and lastName have length greater than 0

* and contain only uppercase and lowercase letters.

*/

public UserName(String firstName, String lastName)

Write the UserName method setAvailableUserNames. The method removes from possibleNames all names that are found in usedNames. These represent user names that have already been assigned in the online system and are therefore unavailable.

A helper method, isUsed, has been provided. The isUsed method searches for name in arr. The method returns true if an exact match is found and returns false otherwise.

Assume that the constructor works as specified, regardless of what you wrote in part (a). You must use isUsed appropriately to receive full credit.

Complete the setAvailableUserNames method below.

/** Removes strings from possibleNames that are found in usedNames as described in part (b).

*/

public void setAvailableUserNames(String[] usedNames)
Computers and Technology
1 answer:
Evgen [1.6K]3 years ago
8 0

Answer:

See explaination

Explanation:

import java.util.*;

class UserName{

ArrayList<String> possibleNames;

UserName(String firstName, String lastName){

if(this.isValidName(firstName) && this.isValidName(lastName)){

possibleNames = new ArrayList<String>();

for(int i=1;i<firstName.length()+1;i++){

possibleNames.add(lastName+firstName.substring(0,i));

}

}else{

System.out.println("firstName and lastName must contain letters only.");

}

}

public boolean isUsed(String name, String[] arr){

for(int i=0;i<arr.length;i++){

if(name.equals(arr[i]))

return true;

}

return false;

}

public void setAvailableUserNames(String[] usedNames){

String[] names = new String[this.possibleNames.size()];

names = this.possibleNames.toArray(names);

for(int i=0;i<usedNames.length;i++){

if(isUsed(usedNames[i],names)){

int index = this.possibleNames.indexOf(usedNames[i]);

this.possibleNames.remove(index);

names = new String[this.possibleNames.size()];

names = this.possibleNames.toArray(names);

}

}

}

public boolean isValidName(String str){

if(str.length()==0) return false;

for(int i=0;i<str.length();i++){

if(str.charAt(i)<'a'||str.charAt(i)>'z' && (str.charAt(i)<'A' || str.charAt(i)>'Z'))

return false;

}

return true;

}

public static void main(String[] args) {

UserName person1 = new UserName("john","smith");

System.out.println(person1.possibleNames);

String[] used = {"harta","hartm","harty"};

UserName person2 = new UserName("mary","hart");

System.out.println("possibleNames before removing: "+person2.possibleNames);

person2.setAvailableUserNames(used);

System.out.println("possibleNames after removing: "+person2.possibleNames);

}

}

You might be interested in
It is where the home tab is located where you can view all the all the formatting purpose <br>​
beks73 [17]

Answer:

Its Ribbon

Explanation:

The Ribbon is located close to the top of the Word window. The Ribbon is organized into a set of task-oriented tabs, and each tab on the Ribbon contains groups of commands. The Home Tab contains the most frequently used commands in Word. To get to another tab on the Ribbon click that particular tab.

<em>B</em><em>t</em><em>w</em><em> </em><em>C</em><em>o</em><em>r</em><em>r</em><em>e</em><em>c</em><em>t</em><em> </em><em>m</em><em>e</em><em> </em><em>i</em><em>f</em><em> </em><em>i</em><em> </em><em>a</em><em>m</em><em> </em><em>w</em><em>r</em><em>o</em><em>n</em><em>g</em>

4 0
3 years ago
Which tabs are expandable and collapsible
NeTakaya

Answer:

quick access toolbar, page layout, status bar

Explanation:

7 0
3 years ago
Which two components help input data in a computer and select options from the screen, respectively?
Natali [406]

Answer:

Mouse and Keyboard are the devices which can be used to give input to the computer.

Explanation:

Mouse and Keyboard both are connected with the CPU via USB cable. Mouse consists of 3 major buttons, left button(for click to get the task to be done), right button (to get options) and wheel (to scroll up and down the page on screen). Keyboard is use to type text and letters as per need.

3 0
3 years ago
Open and close ____ immediately following the name of a procedure identify a Visual Basic statement as a procedure call statemen
Bezzdna [24]

Answer:  Parentheses

Explanation:

 The open and close parentheses basically identify the visual basic statement   in the procedure call statement.

The close procedure basically in the visual basic statement basically terminate the call of a program that performed the real processing. Open and close is also known as right and left parentheses.

The close statement is basically control the pre-defined programming statement in the particular close procedure.

 

4 0
4 years ago
You have a network with a subnet of 172.16.17.0/22. Which of the following is a valid host address?A. 172.16.17.1 255.255.255.25
Licemer1 [7]

Answer:

E. 172.16.18.255 255.255.252.0

Explanation:

Oh goodie, this is my home turf.

The answer is E) 172.16.18.255 255.255.252.0

This is because your subnet network ID includes mask \22, which means the ending with 255 255.255.252.0, which is standard for Class B. Only option E falls as an adequate host due to the network being 172.16.16 and broadcasting 16.19.

7 0
3 years ago
Other questions:
  • Why did LISD had to block the game “among us”?
    8·2 answers
  • Methods used to change variables are called ______. equals accessors toString void mutators
    5·1 answer
  • Which of the following sorting algorithms could be implemented on a doubly-linked list WITHOUT making the asymptotic worst-case
    12·1 answer
  • What is the real meaning of hack and crack?
    6·1 answer
  • When doing black and white photography, which file format should you use if possible? JPEG TIFF PNG RAW
    11·2 answers
  • When troubleshooting firewalls, you should never attempt to repeat the problem because you could do more damage. T/F
    6·1 answer
  • Determine what is printed by the following code.
    8·1 answer
  • What is your definition of Digital Safety?
    6·1 answer
  • Void printInfo()
    8·1 answer
  • give the tightest asymptotic bounds you can for the following recurrences and provide a short explanation for your solution. you
    10·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!