Archief - Java int to tekst

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

badboyss

Legacy Member
hallo


mijn eerste lessen java.
We zijn bezig met de scanner methode.
lees een waarde van het toetsenbord en toon deze .
Op zich geen probleem maar nu wil ik iets verder gaan en deze tonen als tekst.
bv 10 nummeriek ingeven en op het scherm komt de "de waarde die u ingegeven heeft is tien"
ik heb al gegoogeld op int to string,en int to char maar vind nergens terug of dit wel mogelijk is.
in de ascii code is het gelukt maar dit wil ik natuurlijk niet.

ik moet niet direct de oplossing hebben maar een tip waar ik moet zoeken of beginnen is al en grote hulp.

grts b

Maser00

Legacy Member
Character (Java 2 Platform SE 5.0)

Character.toChars(65) // returns ['A']

EDIT: whoops fout gelezen, wat jij wil bestaat niet in de API volgens mij, dan moet je het zelf gaan schrijven. Maar waarom zou je dit willen, gaat veel werk zijn als dit voor getallen/talen moet werken.

badboyss

Legacy Member
ja to char is het gelukt dan krijg ik de ascii waarde van het getal.
Maar ik wou gewoon weten of ik het volledig kon uitschrijven als een woord maar dit zal dus niet lukken als beginner :-)

het was gewoon een extra die ik wou doen op enkele oefeningen van school.
dus nu heeft hij de "de ingegeven waarde is 97 in ascii b"
En ik wou daar nog bij bv "de ingegeven waarde is 10, in ascii b of geschreven als zevenennegentig"

momenteel heeft het geen nut enkel oefeningen ;-)
En ik zie nu dat mijn titel fout is moest zijn int to tekst ;-)

grs b,

Maser00

Legacy Member
Je kan een map maken van int -> string en dan zelf de map vullen. Als je dan aan de map waarde 10 opvraagd geeft hij "tien" terug.

Voorbeeld:
Map<Integer, String> map = new HashMap<>();
map.put(1, "een");
map.put(2, "twee");
map.put(3, "drie");

System.out.println("U gaf " + map.get(2) + " in");

Geeft "U gaf twee in"

badboyss

Legacy Member
:-)

het is nog maar de 4e les ;-)
kun je me ff op weg zetten met een link of zo of iets duidelijker waar ik moet naar zoeken .

thx alvast

grts b,

badboyss

Legacy Member
thx het zal idd veel werk zijn om zo iets te coderen,maar nu weet ik tenminste hoe het wel kan en het bijna onmogelijk is om het volledig nummeriek stelsel te coderen zoals u voorbeeld ;-)

bedankt voor de oplossing

grts b

Tyfius

Legacy Member
Je moet niet het volledige numerieke stelsel coderen. Je moet intelligent werken want getallen zijn samengesteld uit verschillende individuele cijfers of groepen. In het Engels is dat natuurlijk een pak eenvoudiger dan in het Nederlands.

Op Convert number into words - Real's Java How-to staat een voorbeeld in het Engels en het Frans.

badboyss

Legacy Member
thx all

ik zal me hier in het weekend eens in verdiepen.

mvg b,

badboyss

Legacy Member
@Masser00

er zit nog een probleem dat ik niet direkt kan oplossen

Code:
package ScannerObject;
import java.awt.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class UsingScannerClass {

	private Scanner scan = new Scanner (System.in);

		/* (non-Javadoc)
		 * @see java.lang.Object#toString()
		 */
		@Override
		public String toString() {
			return "UsingScannerClass [scan=" + scan + "]";
		}

		/**
		 * 
		 */
		public UsingScannerClass() {
			super();
		}

		/**
		 * @param scan
		 */
		public UsingScannerClass(Scanner scan) {
			super();
			this.scan = scan;
		}
		
		public void vraagNummer(){
			
		    //geef een waarde aan x
			int x = 0;
			
			//vraag een invoer aan de gebruiker
			System.out.println("Geef een numerieke waarde in tussen 1 en 20 ,aub");
		   
			// x wordt de de ingegeven waarde
			x = scan.nextInt();
			
			//creer een map om een int naar een string op te roepen
			Map<Integer, String> map = new HashMap<>();
			map.put(1, "een");
			map.put(2, "twee");
			map.put(3, "drie");
			map.put(4, "vier");
			map.put(5, "vijf");
			map.put(6, "zes");
			map.put(7, "zeven");
			map.put(8, "acht");
			map.put(9, "negen");
			map.put(10, "tien");
			map.put(11, "elf");
			map.put(12, "twaalf");
			map.put(13, "dertien");
			map.put(14, "veertien");
			map.put(15, "vijftien");
			map.put(16, "zestien");
			map.put(17, "zevenien");
			map.put(18, "achttien");
			map.put(19, "negentien");
			map.put(20, "twintig");
			
			//converteer x naar ascii
			int waarde = x;
			char digit = (char) waarde;
			
			//geef de output van de waarde X
			System.out.println("De waarde die U ingaf is " + x);
			
			System.out.println("De ASCII waarde van  " + waarde + " is ->" + digit + "<-"); 

			System.out.println("En wordt geschreven als " + map.get(3)  );
			
			
        }
	
}

wanneer ik deze uitvoer krijg ik iedere keer de waare in de haakjes van map.get(3) wat normaal is want je roept map 3 op.

Code:
System.out.println("En wordt geschreven als " + map.get(3)  );

Wanneer ik volgende code ingeef krijg ik geen waarde terug .

Code:
System.out.println("En wordt geschreven als " + map.get()  );

hoe kan ik dit verder oplossn?

grts b,

badboyss

Legacy Member
damn zoveel geprobeerd en zo simpel op te lossen.(denk ik)

Code:
System.out.println("En wordt geschreven als " + map.get(x)  );

Maser00

Legacy Member
Heb even dit voor u gemaakt, denk dat je wilt: [Java] test - Pastebin.com

Even een paar dingen:
- Weet je wat die methoden zijn die je gebruikt? Waarom gebruik je die?
- Methoden schrijf je in java niet met hoofdletter.
- Probeer u code te indenteren.

badboyss

Legacy Member
Hey Maser

thx ,zoals ik eerder vertelde heb ik nog nooit geprogrameerd.
Ik heb nu een les of 5 gehad en we zijn nog bezig met array's en de scanner methode.
Maar System.out.println is toch een methode die met hoofdletter wordt geschreven bv.
Ik zie dat je main in dezelfde classe zit,wij moeten nog werken met een main classe en een 2e classe.

We moeten ook leren de string to en constructors gebruiken per classe.
U code doet waarschijnlijk hetzelde zoniet beter dan het geen ik geschreven heb,maar zo moeten we het voorlopig doen.
Hieronde vind je de code zoals ze op papier staat en die we eigenlijk gewoon moeten overtypen.

Maar zelf probeer ik soms wat meer dan de opdracht waaronder dingen die we nog niet gezien hebben,mar anders leer je niet.


de main class
Code:
package ScannerObject;

public class start {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub


UsingScannerClass usc = new UsingScannerClass();
usc.vraagNummer();
}
	}

de UsingscannerClass
Code:
package ScannerObject;

import java.util.Scanner;

public class UsingScannerClass{
	private Scanner scan = new Scanner(System.in);

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "UsingScannerClass [scan=" + scan + "]";
	}

	/**
	 * 
	 */
	public UsingScannerClass() {
		super();
	}

	/**
	 * @param scan
	 */
	public UsingScannerClass(Scanner scan) {
		super();
		this.scan = scan;
	}
	
	public void vraagNummer(){

	int x = 0;
	System.out.println("Geef een numerieke waarde in,aub");
	x = scan.nextInt();
	System.out.println("De waarde die u ingaf was " + x);
	}
	
	}


zo staat het momenteel op papier en moesten we overnemen.

En zo heb ik ze aangepast zoals ze nu is en werkt ze zoals ik verwacht had,maar welliswaar kan ze verenvoudigd worden.

Code:
package ScannerObject;
import java.io.*;
import java.awt.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class UsingScannerClass {
    
	// instantieer een Scanner class object
	private Scanner scan = new Scanner (System.in);

		/* (non-Javadoc)
		 * @see java.lang.Object#toString()
		 */
		@Override
		public String toString() {
			return "UsingScannerClass [scan=" + scan + "]";
		}

		/**
		 * 
		 */
		public UsingScannerClass() {
			super();
		}

		/**
		 * @param scan
		 */
		public UsingScannerClass(Scanner scan) {
			super();
			this.scan = scan;
		}
		
		public void vraagNummer(){
			
			//declareer x als int
			int x;
			
				//kijk eerst of het een int is 
				try
				{
			
					//vraag een invoer aan de gebruiker
					System.out.println("Geef een numerieke waarde in tussen 1 en 20 ,aub");
		   
						// x wordt de de ingegeven waarde
						x = scan.nextInt();
			
		//controle of x kleiner is dan 20
		 if (x>20)
			   {
				   System.out.println("Halloooooo tussen 1 en 20 aub");
			   }
			          
		 else 
			   {
			 	//creer een map om een int naar een string op te roepen
			 	Map<Integer, String> map = new HashMap<>();
			 	map.put(1, "een");
			 	map.put(2, "twee");
				map.put(3, "drie");
				map.put(4, "vier");
				map.put(5, "vijf");
				map.put(6, "zes");
				map.put(7, "zeven");
				map.put(8, "acht");
				map.put(9, "negen");
				map.put(10, "tien");
				map.put(11, "elf");
				map.put(12, "twaalf");
				map.put(13, "dertien");
				map.put(14, "veertien");
				map.put(15, "vijftien");
				map.put(16, "zestien");
				map.put(17, "zeventien");
				map.put(18, "achttien");
				map.put(19, "negentien");
				map.put(20, "twintig");
			
			//geef de output van de waarde X
			System.out.println("De waarde die U ingaf is: " + x);
		 
				//geef de ASCII van de waarde X
				char ascii = (char) x;
				System.out.println("De ASCII waarde van " +x+ " is: ->" + ascii + "<-"); 
			
					//geef de geschreven waarde van X
					System.out.println("En wordt geschreven als: " + map.get(x)  );
			
						//geef de binary waarde van X
						String binary = Integer.toBinaryString(x);
						System.out.println(x+ " wordt binair uitgeschreven als: " + binary);
			
			//geef de hexadecimaal van de waarde X
			String hex = Integer.toHexString(x);
			System.out.println(binary + " wordt ook " +hex + " Hexa decimal");
			
				//geef de octale waarde van X //integer to octal
				String oct = Integer.toOctalString(x);
				System.out.println("En ook de waarde " + hex + " Hexadecimaal is hetzelfde als " + oct + " octaal");
			
					//geef een samenvatting van al de waarde
					System.out.println("Dus kunnen we stellen dat " + x +" gelijk is aan " +ascii+ " en " + map.get(x)+ " en "
					+ binary+ " en " +hex+ " en " +oct);
			}
				}
		  
		catch 
		  		(Exception e){
			  	System.out.println("LET OP IK VROEG EEN NUMMERIEK GETAL");
			  	e.getMessage();
		  }
        
		}
		}

nu ik heb al een stuk bijgeleerd en hoop nog veel te leren ;-)

grts b

Maser00

Legacy Member
Maar System.out.println is toch een methode die met hoofdletter wordt geschreven bv.
System is een klasse, out is een static variabele van System en println() is daar een methode van ;) Waarschijnlijk heb je static nog niet gezien.

Ik zie dat je main in dezelfde classe zit,wij moeten nog werken met een main classe en een 2e classe.
Ja normaal doe ik dat ook, maar voor zoiets klein maakt dat echt niet uit :p

We moeten ook leren de string to en constructors gebruiken per classe
Wat bedoel je?

public UsingScannerClass() {
super();
}

Waarom die klassen super bevatten weet ik niet, heeft geen enkel nut + je extend geen andere klassen.

badboyss

Legacy Member
Maser00 zei:
Waarom die klassen super bevatten weet ik niet, heeft geen enkel nut + je extend geen andere klassen.
Omdat we standaard leren de to string gebruiken + de constructors met en zonder fields.

Dus als we een classe hebben moeten we in eclipse --> source-->generate to string en generate constructors using fields gebruiken .

Dus deze wordt auto gegenereerd.
Wat betreft de main,later zullen we dit blijkbaar ook zien zoals in u voorbeeld maar nu wordt alles super uitgebreid aangeleerd ;-)

grts b,

Maser00

Legacy Member
Omdat we standaard leren de to string gebruiken + de constructors met en zonder fields.

Dus als we een classe hebben moeten we in eclipse --> source-->generate to string en generate constructors using fields gebruiken .

Neem van mij aan dat dit geen enkel nut heeft als je geen gebruik maakt van overerving. Die super verwijst nu elke keer naar de klasse Object, waarvan alle objecten een object van zijn. Dit is vergelijkbaar als bij elke klasse
import java.lang.*;
te gebruiken of bij elke klasse "extends Object" bij te schrijven.
Using the Keyword super (The Java™ Tutorials > Learning the Java Language > Interfaces and Inheritance)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan