Java – convert sentences to arrays and delete characters and print new sentences
Disclaimer: This is a homework assignment
The goal of the program is to propose a sentence and then: – convert uppercase to lowercase (do not use. Tolowercase()) – delete all characters other than A-Z, A-Z and 0-9 – print a new sentence –... Something more important but less important
OK, what did I do
>I convert my string (sentence) to a char array. > I created a for loop to iterate over all the characters in my array > If char is uppercase, I convert it to lowercase using ASCII
My problem is: – it looks like I changed char c, but it's not stored in lowercase in my array? – How do I detect an disallowed character and remove it from my array?
My code:
import java.util.Scanner; public class sentence { public static void main(String[] args) { Scanner scanner = new Scanner(system.in); String zin = ""; System.out.print("Voer een zin in: "); if (scanner.hasNextLine()) zin = scanner.nextLine().trim(); if (zin.equals("")) { System.out.print("Geen Invoer!"); System.exit(0); } char[] zinArray = zin.tocharArray(); for (int i = 0; i < zinArray.length; i++) { char c = zinArray[i]; if (c >= 'A' && c <= 'Z') { c = (char)(c + 32); } else if (c >= 58 && c <= 64) { } else if (c >= 91 && c <= 96) { } else if (c 123 && c <= 126) { } } } }
Who can point me in the right direction?
Thank you:)
Solution
Consider the following lines:
char c = zinArray[i];
Assign duplicate values (references if class instances) So you created a copy of the character in zinarray [i] This means that changing the value of variable C does not change the value stored in zinarray [i] You must make changes to the array items as follows:
zinArray[i] = (char)(c + 32);