Skip to main content

merge sort

0 likes • Nov 18, 2022
Java
Loading...
Download

More Java Posts

Me

Daedalus
0 likes • Feb 6, 2021
Java
public class Daedalus extends Athenian
{
private Story story;
public ArrayList<Skill> skills = new ArrayList<Skill>();
public ArrayList<Athenian> children = new ArrayList<Athenian>();
public Daedalus(Story story, ArrayList<Skill> inherentSkills)
{
if(story != null)
System.out.println("ERROR No one is created with a story.");
skills.add(inherentSkills);
}
public Momento advanceStory(Scene s)
{
System.err.println("ERROR Don't know how to proceed...");
}
}
//██╗  ░█████╗░███╗░░░███╗  ██████╗░░█████╗░███████╗██████╗░░█████╗░██╗░░░░░██╗░░░██╗░██████╗
//██║  ██╔══██╗████╗░████║  ██╔══██╗██╔══██╗██╔════╝██╔══██╗██╔══██╗██║░░░░░██║░░░██║██╔════╝
//██║  ███████║██╔████╔██║  ██║░░██║███████║█████╗░░██║░░██║███████║██║░░░░░██║░░░██║╚█████╗░
//██║  ██╔══██║██║╚██╔╝██║  ██║░░██║██╔══██║██╔══╝░░██║░░██║██╔══██║██║░░░░░██║░░░██║░╚═══██╗
//██║  ██║░░██║██║░╚═╝░██║  ██████╔╝██║░░██║███████╗██████╔╝██║░░██║███████╗╚██████╔╝██████╔╝
//╚═╝  ╚═╝░░╚═╝╚═╝░░░░░╚═╝  ╚═════╝░╚═╝░░╚═╝╚══════╝╚═════╝░╚═╝░░╚═╝╚══════╝░╚═════╝░╚═════╝░

try-catch modularity

AustinLeath
0 likes • Jan 31, 2023
Java
public class UserService {
private UserRepository userRepository;
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public User getUserById(long id) {
try {
return userRepository.getUserById(id);
} catch (Exception e) {
// Log the exception here
System.out.println("An error occurred while fetching the user: " + e.getMessage());
return null;
}
}
}
public class UserRepository {
public User getUserById(long id) throws Exception {
// Database query to fetch the user
if (id < 0) {
throw new Exception("Invalid user id");
}
// Return the user object
return new User(id, "John Doe");
}
}
public class User {
private long id;
private String name;
public User(long id, String name) {
this.id = id;
this.name = name;
}
public long getId() {
return id;
}
public String getName() {
return name;
}
}

WordleSolver

ThiccDaddyLOAF
0 likes • Feb 1, 2022
Java
//Leif Messinger
//Solves wordle
//Needs a list of wordle words, newline separated and 5 characters each
import java.util.*;
import java.io.File;
import java.io.FileNotFoundException;
class WordleSolver {
public static void printPointer(int position){
for(int i = 0; i < position; ++i){
System.out.print(" ");
}
System.out.print("^");
}
public static void main(String[] args) throws FileNotFoundException{
if(args.length < 1) return;
File dictionary = new File(args[0]);
Scanner sc = new Scanner(dictionary);
ArrayList<String> possibleWords = new ArrayList<String>();
while(sc.hasNextLine()){
possibleWords.add(sc.nextLine());
}
Scanner input = new Scanner(System.in);
while(possibleWords.size() > 0){
//Choose a word out of the possible words
final int randomIndex = (int)(Math.random() * possibleWords.size());
String chosenWord = possibleWords.get(randomIndex);
possibleWords.remove(randomIndex);
System.out.println("Is it correct?");
for(int i = 0; i < chosenWord.length(); ++i){
System.out.println(chosenWord);
printPointer(i);
System.out.println(" y/n?");
if(input.nextLine().toLowerCase().contains("y")){
//Filter by correct character
for(int possibleWord = possibleWords.size() - 1; possibleWord >= 0; --possibleWord){ //Has to be backwards for removing entries, also has to be int not unsigned
if(possibleWords.get(possibleWord).charAt(i) != chosenWord.charAt(i)){
possibleWords.remove(possibleWord);
}
}
}
}
System.out.println("Is it misplaced?");
//Stores a count of every letter misplaced
short[] misplacedCounts = new short[('z'-'a')+1]; //Praise be the garbage collector
for(int i = 0; i < chosenWord.length(); ++i){
System.out.println(chosenWord);
printPointer(i);
System.out.println(" y/n?");
if(input.nextLine().toLowerCase().contains("y")){
//Filter to make sure there's at least as many letters as needed
++misplacedCounts[(chosenWord.charAt(i) - 'a') - 1];
for(int possibleWord = possibleWords.size() - 1; possibleWord >= 0; --possibleWord){ //Has to be backwards for removing entries, also has to be int not unsigned
int count = 0;
for(int j = 0; j < possibleWords.get(possibleWord).length(); ++j){
if(possibleWords.get(possibleWord).charAt(j) == chosenWord.charAt(i))
++count;
}
//If there's not enough of the character that we need, then we remove that from the list of possible characters
if(count < misplacedCounts[(chosenWord.charAt(i) - 'a') - 1]){
possibleWords.remove(possibleWord);
}
}
//Also filter out words where that letter doesn't belong there
for(int possibleWord = possibleWords.size() - 1; possibleWord >= 0; --possibleWord){ //Has to be backwards for removing entries, also has to be int not unsigned
if(possibleWords.get(possibleWord).charAt(i) == chosenWord.charAt(i)){
possibleWords.remove(possibleWord);
continue; //Breaks the current word and moves on in the loop
}
}
}
}
}
}
}

Word Counter

CodeCatch
0 likes • Nov 19, 2022
Java
import java.io.File;
import java.io.IOException;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
public class SimpleWordCounter {
public static void main(String[] args) {
try {
File f = new File("ciaFactBook2008.txt");
Scanner sc;
sc = new Scanner(f);
// sc.useDelimiter("[^a-zA-Z']+");
Map<String, Integer> wordCount = new TreeMap<String, Integer>();
while(sc.hasNext()) {
String word = sc.next();
if(!wordCount.containsKey(word))
wordCount.put(word, 1);
else
wordCount.put(word, wordCount.get(word) + 1);
}
// show results
for(String word : wordCount.keySet())
System.out.println(word + " " + wordCount.get(word));
System.out.println(wordCount.size());
}
catch(IOException e) {
System.out.println("Unable to read from file.");
}
}
}

Random Integers -> file

CodeCatch
0 likes • Nov 19, 2022
Java
//sample code to write 100 random ints to a file, 1 per line
import java.io.PrintStream;
import java.io.IOException;
import java.io.File;
import java.util.Random;
public class WriteToFile {
public static void main(String[] args) {
try {
PrintStream writer = new PrintStream(new File("randInts.txt"));
Random r = new Random();
final int LIMIT = 100;
for (int i = 0; i < LIMIT; i++) {
writer.println(r.nextInt());
}
writer.close();
} catch (IOException e) {
System.out.println("An error occured while trying to write to the file");
}
}
}
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
char[] variables = setVariables(in);
int[] minTerms = setMinTerms(in);
String[] binaryMinTerms = decimalToBinary(variables, minTerms);
ArrayList<Group> groups = computeSuccessiveGroups(minTerms, binaryMinTerms);
displayInput(variables, minTerms);
printPIs(groups, variables);
}
private static char[] setVariables(Scanner in) {
System.out.print("Enter the number of variables: ");
int numVariables = in.nextInt();
char[] variables = new char[numVariables];
System.out.print("Enter each variable separated by spaces: ");
for(int i = 0; i < numVariables; i++) {
variables[i] = in.next().charAt(0);
}
return variables;
}
private static int[] setMinTerms(Scanner in) {
System.out.print("Enter the number of min terms: ");
int numMinTerms = in.nextInt();
int[] minTerms = new int[numMinTerms];
System.out.print("Enter each min term separated by spaces: ");
for(int i = 0; i < numMinTerms; i++) {
minTerms[i] = in.nextInt();
}
return minTerms;
}
private static String[] decimalToBinary(char[] variables, int[] minTerms) {
String[] binaryMinTerms = new String[minTerms.length];
for(int i = 0; i < minTerms.length; i++) {
binaryMinTerms[i] = Integer.toBinaryString(minTerms[i]);
if(binaryMinTerms[i].length() < variables.length) {
String zeros = "";
int len = binaryMinTerms[i].length();
while(len < variables.length) {
zeros = zeros.concat("0");
len++;
}
binaryMinTerms[i] = zeros + binaryMinTerms[i];
}
}
return binaryMinTerms;
}
private static void displayInput(char[] variables, int[] minTerms) {
System.out.print("Function: f(");
for(int i = 0; i < variables.length; i++) {
if(i == variables.length-1)
System.out.print(variables[i]);
else
System.out.print(variables[i] + ", ");
}
System.out.print(") = SIGMAm(");
for(int i = 0; i < minTerms.length; i++) {
if(i == minTerms.length-1)
System.out.print(minTerms[i]);
else
System.out.print(minTerms[i] + ", ");
}
System.out.println(")");
}
private static ArrayList<Group> computeSuccessiveGroups(int[] minTerms, String[] binaryMinTerms) {
ArrayList<Group> groups = new ArrayList<Group>();
for(int i = 0; i < minTerms.length; i++)
groups.add(new Group(Integer.toString(minTerms[i]), binaryMinTerms[i]));
int sizeBeforeRemoval = 0, currentSize;
while(sizeBeforeRemoval != groups.size()) {
currentSize = groups.size();
for(int i = 0; i < currentSize; i++) {
for(int j = i+1; j < currentSize; j++) {
if(differences(groups.get(i).binary, groups.get(j).binary) == 1) {
String combinedBin = combineBinary(groups.get(i).binary, groups.get(j).binary);
groups.get(i).grouped = true;
groups.get(j).grouped = true;
if(isUniqueBin(groups, combinedBin)) {
String newTuple = groups.get(i).decimal + "," + groups.get(j).decimal;
groups.add(new Group(newTuple, combinedBin));
}
else break;
}
}
}
sizeBeforeRemoval = groups.size();
Iterator<Group> iter = groups.iterator();
while(iter.hasNext()) {
Group next = iter.next();
if(next.grouped)
iter.remove();
}
}
return groups;
}
private static int differences(String a, String b) {
int diff = 0;
for(int i = 0; i < a.length(); i++)
if(a.charAt(i) != b.charAt(i))
diff++;
return diff;
}
private static String combineBinary(String a, String b) {
String combined = "";
for(int i = 0; i < a.length(); i++) {
if(a.charAt(i) != b.charAt(i))
combined = combined.concat("-");
else
combined = combined.concat(Character.toString(a.charAt(i)));
}
return combined;
}
private static boolean isUniqueBin(ArrayList<Group> groups, String s) {
for(int i = 0; i < groups.size(); i++)
if(groups.get(i).binary.equals(s))
return false;
return true;
}
private static void printPIs(ArrayList<Group> groups, char[] variables) {
System.out.println("Prime Implicants: ");
for(int i = 0; i < groups.size(); i++)
System.out.println(groups.get(i).decimal + " | " + binaryToMinTerm(variables, groups.get(i).binary));
}
private static String binaryToMinTerm(char[] variables, String s) {
String minTerm = "";
for(int i = 0; i < s.length(); i++) {
if(s.charAt(i) != '-') {
if(s.charAt(i) == '0')
minTerm = minTerm.concat(Character.toString(variables[i]) + "'");
else
minTerm = minTerm.concat(Character.toString(variables[i]));
}
}
return minTerm;
}
}