PrisonLove
Hard Realist
- Reaction score
- 78
Hey guys. I made a very basic String Scramble program while I was bored at work and it works great. Unfortunately it is beyond my knowledge as to how to detect key presses in Java. I want to make it so that when the user presses the escape key, it exits the program. Currently I have it set so that the user must enter an asterisk when prompted for a string to exit. This works just fine, but I want learn how to use the escape key for exiting stuff. Can anyone help out? I'll post my code. I know it's not the most elegant code, but Im still learning.
Here it is:
Here it is:
Code:
/* This program takes a string and scrambles
* it to form a jumbled version of the string.
* This program keeps the words in multiple word
* strings separate, and uses a blank space a dimiliter.
*/
import java.util.*;
import java.io.*;
public class StringScrambler {
public static void displayWelcome() {
System.out.println("Welcome to the String Scrambler!");
System.out.println("This program will scramble any string entered.");
System.out.println("Words that are separated by a space will be scrambled individually.");
System.out.println("All strings will be sent to upper case when scrambled.\n");
System.out.println("Enter '*' (without the '') to exit.\n");
} // end of [displayWelcome]
public static String scramble(String str) {
if (str.equals("")) return "";
if (str.length() < 2) return str;
int length = str.length();
Random rand = new Random();
int randNum = rand.nextInt(length);
char c = str.charAt(randNum);
String tmp1 = "";
String tmp2 = "";
if (randNum != 0) tmp1 = str.substring(0, randNum); // end [if]
tmp2 = str.substring(randNum+1, length);
String tmp3 = tmp1 + tmp2;
return c + scramble(tmp3);
} // end of [scramble]
public static String scrambleAssist(String str) {
if (str.length() < 2) return str;
String str2 = str;
while (str2.equals(str)) {
str2 = scramble(str);
}
return str2;
}
public static String scrambleFull(String str) {
str = str.toUpperCase();
Scanner input = new Scanner(str);
String str2 = "";
String tmpStr = input.next();
tmpStr = scrambleAssist(tmpStr);
str2 += tmpStr;
while (input.hasNext()) {
tmpStr = input.next();
tmpStr = scrambleAssist(tmpStr);
str2 += (" " + tmpStr);
}
return str2;
} //end of [scrambleFull]
public static void main(String agrs[]) {
displayWelcome();
Scanner console = new Scanner(System.in);
String str = "";
String str2;
String quitWord = "*";
while (!str.equalsIgnoreCase(quitWord)) {
System.out.print("Enter a string: ");
str = console.nextLine();
if (str.equalsIgnoreCase(quitWord)) break;
str2 = scrambleFull(str);
System.out.println("\nYour scrambled string is: " + str2 + "\n");
}
System.out.println("\nProgram exited.");
} // end of [main]
} // end of [StringScrambler]