In: Computer Science
1. It is quite interesting that most of us are likely to be able to read and comprehend words, even if the alphabets of these words are scrambled (two of them) given the fact that the first and last alphabets remain the same. For example,
“I dn'ot gvie a dman for a man taht can olny sepll a wrod one way.” (Mrak Taiwn)
“We aer all moratls, Hamrbee is an immoratl, and tehre is no question abuot it.” (Kevin Unknown)
2. Write a method named scramble that returns a String and takes a String as an argument.
A. The argument is actually a word (of length 6 or more).
B. It then constructs a scrambled version of that word, randomly flipping two characters other than the first and last one.
3. Then write the main method in which you would read the word from the user, send it to scramble, and print the scrambled word.
A. You can use a loop to read multiple words if you like but it is not necessary.
B. If the length of the entered word is less than 6, you should keep prompting the user to enter a valid word.
4. After writing all the comments, generate a Javadoc and submit it with the java file.
Hint: First generate two random integers in range of the length of the string. Then use substring method to access characters at those locations. Rest is left to your imagination.
PROGRAM import java.util.Random; import java.util.Scanner; /** * This class generate a scrambled word from a user entered word. */ public class ScrambleWord { public static void main(String[]args) { Scanner sc=new Scanner(System.in); System.out.println("ENTER A STRING : "); String str=sc.nextLine(); if(str.length() < 6 ) { System.out.println("Enter valid string"); } else { System.out.println("The scrambled word is: "+scramble(str)); } } /** * Generate two random numbers and call the swap method. * @param str * @return scrambled word for str */ private static String scramble(String str) { Random random = new Random(); int x = random.nextInt(str.length()-2)+1; int y = random.nextInt(str.length()-2)+1; String swappedStr= swap(str, x, y); return swappedStr; } /** * * @param str * @param x * @param y * @return new scrumbled string by swaping the letters in the given positions */ private static String swap(String str, int x, int y) { String output = null; char[] charArr = str.toCharArray(); char temp = charArr[x]; charArr[x] = charArr[y]; charArr[y] = temp; output = new String(charArr); return output; } }
JAVADOC For ScrambleWord
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Tue Oct 20 06:50:19 IST
2020 -->
<title>ScrambleWord</title>
<meta name="date" content="2020-10-20">
<link rel="stylesheet" type="text/css" href="stylesheet.css"
title="Style">
<script type="text/javascript"
src="script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ScrambleWord";
}
}
catch(err) {
}
//-->
var methods = {"i0":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static
Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your
browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top"
title="Skip navigation links">Skip navigation
links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a
href="overview-summary.html">Overview</a></li>
<li><a
href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a
href="package-tree.html">Tree</a></li>
<li><a
href="deprecated-list.html">Deprecated</a></li>
<li><a
href="index-files/index-1.html">Index</a></li>
<li><a
href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="Main.html" title="class in
<Unnamed>"><span
class="typeNameLink">Prev Class</span></a></li>
<li>Next Class</li>
</ul>
<ul class="navList">
<li><a href="index.html?ScrambleWord.html"
target="_top">Frames</a></li>
<li><a href="ScrambleWord.html"
target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a
href="allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink =
document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary: </li>
<li>Nested | </li>
<li>Field | </li>
<li><a
href="#constructor.summary">Constr</a> | </li>
<li><a
href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail: </li>
<li>Field | </li>
<li><a
href="#constructor.detail">Constr</a> | </li>
<li><a
href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<h2 title="Class ScrambleWord" class="title">Class
ScrambleWord</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>ScrambleWord</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span
class="typeNameLabel">ScrambleWord</span>
extends java.lang.Object</pre>
<div class="block">This class generate a scrambled word from
a user entered word.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a
name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3"
cellspacing="0" summary="Constructor Summary table, listing
constructors, and an explanation">
<caption><span>Constructors</span><span
class="tabEnd"> </span></caption>
<tr>
<th class="colOne" scope="col">Constructor and
Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span
class="memberNameLink"><a
href="ScrambleWord.html#ScrambleWord--">ScrambleWord</a></span>()</code> </td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3"
cellspacing="0" summary="Method Summary table, listing methods, and
an explanation">
<caption><span id="t0"
class="activeTableTab"><span>All
Methods</span><span
class="tabEnd"> </span></span><span
id="t1" class="tableTab"><span><a
href="javascript:show(1);">Static
Methods</a></span><span
class="tabEnd"> </span></span><span
id="t4" class="tableTab"><span><a
href="javascript:show(8);">Concrete
Methods</a></span><span
class="tabEnd"> </span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and
Type</th>
<th class="colLast" scope="col">Method and
Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static
void</code></td>
<td class="colLast"><code><span
class="memberNameLink"><a
href="ScrambleWord.html#main-java.lang.String:A-">main</a></span>(java.lang.String[] args)</code> </td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a
name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from
class java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify,
notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a
name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ScrambleWord--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ScrambleWord</h4>
<pre>public ScrambleWord()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="main-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>main</h4>
<pre>public
static void main(java.lang.String[] args)</pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom"
title="Skip navigation links">Skip navigation
links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a
href="overview-summary.html">Overview</a></li>
<li><a
href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a
href="package-tree.html">Tree</a></li>
<li><a
href="deprecated-list.html">Deprecated</a></li>
<li><a
href="index-files/index-1.html">Index</a></li>
<li><a
href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="Main.html" title="class in
<Unnamed>"><span
class="typeNameLink">Prev Class</span></a></li>
<li>Next Class</li>
</ul>
<ul class="navList">
<li><a href="index.html?ScrambleWord.html"
target="_top">Frames</a></li>
<li><a href="ScrambleWord.html"
target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a
href="allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink =
document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary: </li>
<li>Nested | </li>
<li>Field | </li>
<li><a
href="#constructor.summary">Constr</a> | </li>
<li><a
href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail: </li>
<li>Field | </li>
<li><a
href="#constructor.detail">Constr</a> | </li>
<li><a
href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>