commit 46ad34ac0da221fb3234dc1ad8544b604acc42df Author: sgoudham Date: Thu Oct 8 18:11:44 2020 +0100 first commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c96066d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/.DS_Store \ No newline at end of file diff --git a/Java Classes and Interfaces/.DS_Store b/Java Classes and Interfaces/.DS_Store new file mode 100644 index 0000000..f2f010a Binary files /dev/null and b/Java Classes and Interfaces/.DS_Store differ diff --git a/Java Classes and Interfaces/Calc Engine/.DS_Store b/Java Classes and Interfaces/Calc Engine/.DS_Store new file mode 100644 index 0000000..c25158c Binary files /dev/null and b/Java Classes and Interfaces/Calc Engine/.DS_Store differ diff --git a/Java Classes and Interfaces/Calc Engine/src/.DS_Store b/Java Classes and Interfaces/Calc Engine/src/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/Java Classes and Interfaces/Calc Engine/src/.DS_Store differ diff --git a/Java Classes and Interfaces/Calc Engine/src/calcEngine.java b/Java Classes and Interfaces/Calc Engine/src/calcEngine.java new file mode 100644 index 0000000..66b9df9 --- /dev/null +++ b/Java Classes and Interfaces/Calc Engine/src/calcEngine.java @@ -0,0 +1,43 @@ +public class calcEngine { + + public static void main(String[] args) { + performCalculations(); + } + + static void performCalculations() { + double[] leftVals = {100.0d, 25.0d, 225.0d, 11.0d}; + double[] rightVals = {50.0d, 92.0d, 17.0d, 3.0d}; + char[] opCodes = {'d', 'a', 's', 'm'}; + double[] results = new double[opCodes.length]; + + for (int i = 0; i < opCodes.length; i++) { + results[i] = execute(opCodes[i], leftVals[i], rightVals[i]); + } + for (double currentResult : results) + System.out.println("result = " + currentResult); + + } + + static double execute(char opCode, double leftVal, double rightVal) { + double result; + switch (opCode) { + case 'a': + result = leftVal + rightVal; + break; + case 's': + result = leftVal - rightVal; + break; + case 'm': + result = leftVal * rightVal; + break; + case 'd': + result = rightVal != 0 ? leftVal / rightVal : 0.0d; + break; + default: + System.out.println("Invalid opCode: " + opCode); + result = 0.0d; + break; + } + return result; + } +} \ No newline at end of file diff --git a/Java Fundamentals/.DS_Store b/Java Fundamentals/.DS_Store new file mode 100644 index 0000000..f1902e7 Binary files /dev/null and b/Java Fundamentals/.DS_Store differ diff --git a/Java Fundamentals/Calc Engine/src/calcEngine.java b/Java Fundamentals/Calc Engine/src/calcEngine.java new file mode 100644 index 0000000..b4a052e --- /dev/null +++ b/Java Fundamentals/Calc Engine/src/calcEngine.java @@ -0,0 +1,187 @@ +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.Scanner; + +public class calcEngine { + + static double execute(char opCode, double leftVal, double rightVal) { + /* Return the correct value + + // Enhanced Switch Statement + switch (opCodes[i]) { + case 'a' -> results[i] = leftVals[i] + rightVals[i]; + case 's' -> results[i] = leftVals[i] - rightVals[i]; + case 'm' -> results[i] = leftVals[i] * rightVals[i]; + case 'd' -> results[i] = rightVals[i] != 0 ? leftVals[i] / rightVals[i] : 0.0d; + default -> { + System.out.println("Invalid opCode" + opCodes[i]); + results[i] = 0.0d; + } + } + */ + double result; + switch (opCode) { + case 'a': + result = leftVal + rightVal; + break; + case 's': + result = leftVal - rightVal; + break; + case 'm': + result = leftVal * rightVal; + break; + case 'd': + result = rightVal != 0 ? leftVal / rightVal : 0.0d; + break; + default: + System.out.println("Invalid opCode" + opCode); + result = 0.0d; + break; + } + return result; + } + + static double getCommandLine(String[] args) { + /* Handle the command line arguments and get the result */ + + char opCode = args[0].charAt(0); + double leftVal = Double.parseDouble(args[1]); + double rightVal = Double.parseDouble(args[2]); + return execute(opCode, leftVal, rightVal); + + } + + static char getOpCodeFromString(String operationName) { + /* Return the opcode from the string*/ + + return operationName.charAt(0); + } + + static double valueFromWord(String word) { + /* Return the double representation of the number */ + + String[] values = { + "zero", "one", "two", "three", "four", "five", + "six", "seven", "eight", "nine", "ten" + }; + double value = -1d; + for (int i = 0; i < values.length; i++) { + if (word.equals(values[i])) { + value = i; + break; + } + } + + // Checking to see if value had changed, if not. Parse the string into a double + if (value == -1) + value = Double.parseDouble(word); + + return value; + } + + static char symbolFromOpCode(char opCode) { + /* Get the relevant symbol for the operation given by the user*/ + + char[] opCodes = {'a', 's', 'm', 'd'}; + char[] symbols = {'+', '-', '*', '/'}; + char symbol = ' '; + + // Loop through the list of chars and get the relevant symbol + for (int i = 0; i < opCodes.length; i++) { + if (opCode == opCodes[i]) { + symbol = symbols[i]; + break; + } + } + return symbol; + } + + static void displayResult(char opCode, double leftVal, double rightVal, double result) { + /* Display the result of the expression but nicely formatted */ + + char symbol = symbolFromOpCode(opCode); + // StringBuilder stringBuilder = new StringBuilder(); + + // stringBuilder.append(leftVal); + // stringBuilder.append(" " + symbol + " "); + // stringBuilder.append(rightVal); + // stringBuilder.append(" = "); + // stringBuilder.append(result); + + // String finalResult = stringBuilder.toString(); + + String finalResult = String.format("%.1f %c %.1f = %.1f", + leftVal, symbol, rightVal, result); + System.out.println(finalResult); + + } + + static void handleWhen(String[] stringParts) { + /* Return date arithmetic operation (days added) */ + + DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd-MM-yyyy"); + LocalDate startDate = LocalDate.parse(stringParts[1], dateTimeFormatter); + long daysToAdd = (long) valueFromWord(stringParts[2]); + + LocalDate newDate = startDate.plusDays(daysToAdd); + String output = String.format("%s + %d days is %s", + startDate.format(dateTimeFormatter), daysToAdd, newDate.format(dateTimeFormatter)); + System.out.println(output); + + } + + static void performOperation(String[] stringParts) { + /* Execute the operation with the numbers given by the user */ + + char opCode = getOpCodeFromString(stringParts[0]); + + if (opCode == 'w') { + handleWhen(stringParts); + } else { + double leftVal = valueFromWord(stringParts[1]); + double rightVal = valueFromWord(stringParts[2]); + double result = execute(opCode, leftVal, rightVal); + displayResult(opCode, leftVal, rightVal, result); + + } + } + + + static void executeInteractively() { + /* Allow the user to be able to enter in numbers for operations */ + + Scanner in = new Scanner(System.in); + System.out.println("Enter in an operation and two numbers"); + String userInput = in.nextLine(); + in.close(); + + String[] stringParts = userInput.split(" "); + performOperation(stringParts); + + } + + public static void main(String[] args) { + + double[] leftVals = {100.0d, 25.0d, 225.0d, 11.0d}; + double[] rightVals = {50.0d, 92.0d, 17.0d, 3.0}; + char[] opCodes = {'d', 'a', 's', 'm'}; + double[] results = new double[opCodes.length]; + + // Make sure the user has entered in command line arguments before trying to use them + if (args.length == 0) { + // Get the results of the operation and store it into an array + for (int i = 0; i < opCodes.length; i++) + results[i] = execute(opCodes[i], leftVals[i], rightVals[i]); + + // Print out all the results stored in the array + for (double currentResult: results) + System.out.println(currentResult); + + } else if (args.length == 1 && args[0].equals("interactive")) { + executeInteractively(); + } else if (args.length == 3) + System.out.println(getCommandLine(args)); + else + System.out.println("Please Enter 3 Command Line Arguments!"); + } +} diff --git a/Java Fundamentals/Get Organised/src/com/.DS_Store b/Java Fundamentals/Get Organised/src/com/.DS_Store new file mode 100644 index 0000000..248fc08 Binary files /dev/null and b/Java Fundamentals/Get Organised/src/com/.DS_Store differ diff --git a/Java Fundamentals/Get Organised/src/com/pluralsite/.DS_Store b/Java Fundamentals/Get Organised/src/com/pluralsite/.DS_Store new file mode 100644 index 0000000..4a1b3ac Binary files /dev/null and b/Java Fundamentals/Get Organised/src/com/pluralsite/.DS_Store differ diff --git a/Java Fundamentals/Get Organised/src/com/pluralsite/getorganised/getOrganised.java b/Java Fundamentals/Get Organised/src/com/pluralsite/getorganised/getOrganised.java new file mode 100644 index 0000000..b461644 --- /dev/null +++ b/Java Fundamentals/Get Organised/src/com/pluralsite/getorganised/getOrganised.java @@ -0,0 +1,6 @@ +public class getOrganised { + + public static void main(String[] args) { + System.out.println("I'm being organised!"); + } +} diff --git a/Java Fundamentals/Hello World/src/helloWorld.java b/Java Fundamentals/Hello World/src/helloWorld.java new file mode 100644 index 0000000..754058b --- /dev/null +++ b/Java Fundamentals/Hello World/src/helloWorld.java @@ -0,0 +1,7 @@ +public class helloWorld { + + public static void main(String[] args) { + /* Printing out Hello World! */ + System.out.println("Hello World!"); + } +} diff --git a/Java Fundamentals/Operator Precedence/src/operatorPrecedence.java b/Java Fundamentals/Operator Precedence/src/operatorPrecedence.java new file mode 100644 index 0000000..fce3ae4 --- /dev/null +++ b/Java Fundamentals/Operator Precedence/src/operatorPrecedence.java @@ -0,0 +1,16 @@ +public class operatorPrecedence { + public static void main(String[] args) { + + int valA = 21; + int valB = 6; + int valC = 3; + int valD = 1; + + int result1 = valA / valC * valD + valB; + int result2 = valA / (valC * (valD + valB)); + + System.out.println(result1); + System.out.println(result2); + + } +} diff --git a/Java Fundamentals/Type Conversion/src/typeConversion.java b/Java Fundamentals/Type Conversion/src/typeConversion.java new file mode 100644 index 0000000..49a1cbe --- /dev/null +++ b/Java Fundamentals/Type Conversion/src/typeConversion.java @@ -0,0 +1,44 @@ +public class typeConversion { + + public static void main(String[] args) { + float floatVal = 1.0f; + double doubleVal = 4.0d; + byte byteVal = 7; + short shortVal = 7; + long longVal = 5; + + // Possible + short result1 = byteVal; + + // Not possible + // short result2 = longVal; + + // Possible + short result2 = (short) longVal; + + // Not Possible + // short result3 = byteVal - longVal; + + // Possible + short result3 = (short) (byteVal - longVal); + + // Not Possible + // long result4 = longVal - floatVal; + + // Better to do this - Possible + float result4 = longVal - floatVal; + + // Possible + double result5 = doubleVal + shortVal; + + + System.out.println("Success"); + System.out.println(result1); + System.out.println(result2); + System.out.println(result3); + System.out.println(result4); + System.out.println(result5); + } +} + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..49334dc --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# LearningJava + +#### Uploading any projects/code that shows my progression in learning Java + +# Courses Included +- [Java Fundamentals](https://app.pluralsight.com/library/courses/getting-started-programming-java/table-of-contents) +- [Java Classes & Interfaces](https://app.pluralsight.com/library/courses/working-classes-interfaces-java/table-of-contents) \ No newline at end of file