Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
ASUS Expertbook PM3: il notebook robusto per le aziende
ASUS Expertbook PM3: il notebook robusto per le aziende
Pensato per le necessità del pubblico d'azienda, ASUS Expertbook PM3 abbina uno chassis particolrmente robusto ad un pannello da 16 pollici di diagonale che avantaggia la produttività personale. Sotto la scocca troviamo un processore AMD Ryzen AI 7 350, che grazie alla certificazione Copilot+ PC permette di sfruttare al meglio l'accelerazione degli ambiti di intelligenza artificiale
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Abbiamo provato per diversi giorni una new entry del mercato italiano, la Gowow Ori, una moto elettrica da off-road, omologata anche per la strada, che sfrutta una pendrive USB per cambiare radicalmente le sue prestazioni
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 02-03-2006, 22:25   #1
NeoNum6
Senior Member
 
Iscritto dal: Feb 2004
Città: BhO
Messaggi: 3701
[JAVA]prendere dati da tastiera...

Codice:
import java.io.*;

public class MainClass {

	public static void main(String[] args) {
	//per fare una lettura da tastiera
	InputStreamReader tastiera=new InputStreamReader(System.in);
	BufferedReader buffer=new BufferedReader(tastiera);
	
	try{
	System.out.println("inserisci il numero di dischi\n");
	int n=(int)buffer.read();
	System.out.println(n);
	String [][] array=new String[5][n];
	for (int j=0;j<5;j++){
	for (int i=0;i<n;i++){
	array [i][j]=new String(buffer.readLine());}
	}}
	catch(IOException e){
		System.out.println("Errore!!"+e);
	}
	}
	

	
}
la domanda è: dove ho sbagliato? parlo della riga in cui c'è da immetere un numero da tastiera per completare l'array di array di stringhe... c'è bisogno di svuotare il buffer?come si fa?
__________________
Linux User 414915 linux counter
Ho concluso con yorick, gor, djgusmy85, sulphur, Rospaccio, Leland Gaunt, paciuli
NeoNum6 è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2006, 00:44   #2
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Codice:
import java.io.*;

public class MainClass {

	public static void main(String[] args) {
		// per fare una lettura da tastiera
		InputStreamReader tastiera = new InputStreamReader(System.in);
		BufferedReader buffer = new BufferedReader(tastiera);

		try {
			System.out.println("inserisci il numero di dischi\n");
			int n = Integer.parseInt(buffer.readLine());
			System.out.println(n);
			String[][] array = new String[5][n];
			for (int i = 0; i < n; i++) {
				for (int j = 0; j < 5; j++) {
					array[j][i] = buffer.readLine();
				}
			}
			System.out.println("Dati inseriti:");
			for (int i = 0; i < n; i++) {
				for (int j = 0; j < 5; j++) {
					System.out.println(array[j][i]);
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
l'errore fondamentale era utilizzare il metodo buffer.read() e poi castare ad int.... il metodo corretto è buffer.readLine() da convertire in int tramite Integer.parseInt()
poi ho fatto qualche modifichina nel codice perchè non mi piace fare un ciclo in cui c'è prima la j e poi la i, ma preferisco invertire i numeri nell'array

EDIT: dimenticavo... è pure inutile fare new String(buffer.readLine()) dato che questo metodo ti restituisce già una stringa...
__________________

Ultima modifica di ^TiGeRShArK^ : 03-03-2006 alle 00:46.
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2006, 01:29   #3
NeoNum6
Senior Member
 
Iscritto dal: Feb 2004
Città: BhO
Messaggi: 3701
grazie mille
__________________
Linux User 414915 linux counter
Ho concluso con yorick, gor, djgusmy85, sulphur, Rospaccio, Leland Gaunt, paciuli
NeoNum6 è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2006, 13:36   #4
NeoNum6
Senior Member
 
Iscritto dal: Feb 2004
Città: BhO
Messaggi: 3701
ma nessuno crede che l'IO in Java sia un pò troppo confusionario?..insomma il concetto base è semplice
colleghi lo stream ad una fonte, e poi lo bufferizzi...ma quanta confusione....
__________________
Linux User 414915 linux counter
Ho concluso con yorick, gor, djgusmy85, sulphur, Rospaccio, Leland Gaunt, paciuli
NeoNum6 è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2006, 13:40   #5
Frank1962
Senior Member
 
L'Avatar di Frank1962
 
Iscritto dal: Sep 2001
Città: de_legato
Messaggi: 792
Quote:
Originariamente inviato da NeoNum6
ma nessuno crede che l'IO in Java sia un pò troppo confusionario?..insomma il concetto base è semplice
colleghi lo stream ad una fonte, e poi lo bufferizzi...ma quanta confusione....
prova le aleternative, per esempio C, e poi dimmi se Java non è quello semplice
__________________
----------------------------------------------
File reality.sys corrupted, Reboot Universe? Y/N
----------------------------------------------
Frank1962 è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2006, 14:41   #6
NeoNum6
Senior Member
 
Iscritto dal: Feb 2004
Città: BhO
Messaggi: 3701
...io ho provato C...lo trovo più semplice a causa del livello di astrazione più basso...
__________________
Linux User 414915 linux counter
Ho concluso con yorick, gor, djgusmy85, sulphur, Rospaccio, Leland Gaunt, paciuli
NeoNum6 è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2006, 14:53   #7
dnarod
Senior Member
 
L'Avatar di dnarod
 
Iscritto dal: Nov 2002
Messaggi: 4329
wow, sei una macchina...come fai a trovare l IO di c piu facile di quello di java?? buon per te comunque
__________________
|18k+|slk800|a7n8x|1Gb/ddr400|Gf4mx440|Pio108|WD 160Gb|Case|Uni|Album|AnimeClick|OneManga|
|ClassicThrash!|BNR Metal|TrueMetal|Dime|Chuck|
dnarod è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2006, 14:57   #8
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
anche a me non piace tanto quello di java...
ma comunque non ci metti niente a crearti una classettina che te lo gestisca in modo semplice...
anzi... ora quasi quasi provo a farla e se esce bene la posto
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2006, 14:58   #9
NeoNum6
Senior Member
 
Iscritto dal: Feb 2004
Città: BhO
Messaggi: 3701
forse con un po più di pratica vi darò ragione...
__________________
Linux User 414915 linux counter
Ho concluso con yorick, gor, djgusmy85, sulphur, Rospaccio, Leland Gaunt, paciuli
NeoNum6 è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2006, 14:59   #10
NeoNum6
Senior Member
 
Iscritto dal: Feb 2004
Città: BhO
Messaggi: 3701
Quote:
Originariamente inviato da ^TiGeRShArK^
anche a me non piace tanto quello di java...
ma comunque non ci metti niente a crearti una classettina che te lo gestisca in modo semplice...
anzi... ora quasi quasi provo a farla e se esce bene la posto
magari!
__________________
Linux User 414915 linux counter
Ho concluso con yorick, gor, djgusmy85, sulphur, Rospaccio, Leland Gaunt, paciuli
NeoNum6 è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2006, 15:04   #11
NeoNum6
Senior Member
 
Iscritto dal: Feb 2004
Città: BhO
Messaggi: 3701
volevo domandarvi una cosa: ma è prassi che per leggere un char da file bisogna creare una variabile int e poi castarla a char? oppure ho sbagliato io qualcosa??
es:
Codice:
	try{
		FileReader f=new FileReader("archivio.xml");
		BufferedReader reader=new BufferedReader(f);
		int a=reader.read();
		System.out.println((char)a);
	}
	catch(FileNotFoundException g){
		System.out.print("File Not FOund");
	}
	catch(IOException h){
		System.out.print("IOException");
	}
...BufferedReader ha un metodo readline...che legge un'intera riga...e se io volessi leggere una sola stringa? (StringTokenizer?)
__________________
Linux User 414915 linux counter
Ho concluso con yorick, gor, djgusmy85, sulphur, Rospaccio, Leland Gaunt, paciuli
NeoNum6 è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2006, 15:27   #12
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
fatto..
scusate il ritardo ma ho dovuto sbrigare altre cosette pure
Codice:
package keyboard;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Keyboard {
	
	private static BufferedReader buffer;


	public Keyboard() {	}

	
	public static String readLine(){
		init();
		try {
			return buffer.readLine();
		} catch (IOException e) {
			return "ERROR: " + e.getMessage();
		}
	}
	
	
	public static int readInt(){
		init();
		String line = readLine();
		return Integer.parseInt(line);
	}
	
	
	private static void init(){
		InputStreamReader keyboard = new InputStreamReader(System.in);
		buffer = new BufferedReader(keyboard);
	}
}
potete continuare ad estenderla come volete (sempre se vi serve a qualcosa 'sta skifezzina )
e comunque qui c'è la classe in cui l'ho provata:
Codice:
import keyboard.Keyboard;

public class Prova {

	public Prova() {}


	public static void main(String[] args) {
		System.out.println("Scrivi qualcosa: ");
		System.out.println("Input della tastiera: " + Keyboard.readLine());
		System.out.println("Inserisci un numero: ");
		System.out.println("Numero inserito: " + Keyboard.readInt());
	}

}
... si vede ke non ho un kazzo da fare finkè la build di diamonds è rotta, vero???
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2006, 15:29   #13
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da NeoNum6
...BufferedReader ha un metodo readline...che legge un'intera riga...e se io volessi leggere una sola stringa? (StringTokenizer?)
si la soluzione migliore è caricarsi tutto il file in un'arrayList di stringhe e quindi applicare StringTokenizer ad ogni riga imho....
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2006, 15:49   #14
NeoNum6
Senior Member
 
Iscritto dal: Feb 2004
Città: BhO
Messaggi: 3701
a me sembra che la scanf(%s,stringa) sia molto più semplice in questo caso...
__________________
Linux User 414915 linux counter
Ho concluso con yorick, gor, djgusmy85, sulphur, Rospaccio, Leland Gaunt, paciuli
NeoNum6 è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2006, 15:59   #15
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
perchè è + semplice di String s = Keyboard.readLine()???
tieni conto che col code completion ci metti meno a scrivere la seconda opzione e inoltre il codice risulta + chiaro e leggibile...
vuoi mettere con uno scanf(%s, stringa) come leggibilità?
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2006, 16:17   #16
NeoNum6
Senior Member
 
Iscritto dal: Feb 2004
Città: BhO
Messaggi: 3701
aspetta però... con String s = Keyboard.readLine() non hai mica finito...devi usare una StringTokenizer che ti divide le 10 100 1000 stringhe che ci sono sulla prima riga...ricordo che il bufferedreader è di circa 8000 caratteri!
__________________
Linux User 414915 linux counter
Ho concluso con yorick, gor, djgusmy85, sulphur, Rospaccio, Leland Gaunt, paciuli
NeoNum6 è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2006, 16:26   #17
dnarod
Senior Member
 
L'Avatar di dnarod
 
Iscritto dal: Nov 2002
Messaggi: 4329
beh non c e solo readline
puoi leggere qualsiasi tipo di dato primitivo (dai un occhio alla documentazione), isolare cio che ti serve, matchare cio che vuoi cercare in una riga, eccetera
__________________
|18k+|slk800|a7n8x|1Gb/ddr400|Gf4mx440|Pio108|WD 160Gb|Case|Uni|Album|AnimeClick|OneManga|
|ClassicThrash!|BNR Metal|TrueMetal|Dime|Chuck|
dnarod è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2006, 16:29   #18
NeoNum6
Senior Member
 
Iscritto dal: Feb 2004
Città: BhO
Messaggi: 3701
qualcuno di voi programma in linux??
sto cercando di aprire unsa semplicissima finestra JPanelOption.showMessageDialog()


** ERROR **: file ../../../src/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c: line 572 (createRawData): assertion failed: (data_fid != 0)
aborting...

...dnarod a quel che dici tu ho già risposto...magari quando farò un po piu di esperienza la penserò come voI!
__________________
Linux User 414915 linux counter
Ho concluso con yorick, gor, djgusmy85, sulphur, Rospaccio, Leland Gaunt, paciuli
NeoNum6 è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2006, 19:02   #19
dnarod
Senior Member
 
L'Avatar di dnarod
 
Iscritto dal: Nov 2002
Messaggi: 4329
azz hai messo me in quel noi....io sono quasi certamente piu inesperto di te, cmq grazie per la fiducia....probabilmente pero parlo cosi di java perche lo conosco meglio
__________________
|18k+|slk800|a7n8x|1Gb/ddr400|Gf4mx440|Pio108|WD 160Gb|Case|Uni|Album|AnimeClick|OneManga|
|ClassicThrash!|BNR Metal|TrueMetal|Dime|Chuck|
dnarod è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2006, 00:01   #20
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da NeoNum6
aspetta però... con String s = Keyboard.readLine() non hai mica finito...devi usare una StringTokenizer che ti divide le 10 100 1000 stringhe che ci sono sulla prima riga...ricordo che il bufferedreader è di circa 8000 caratteri!
aspetta..
ma ora stai parlando della tastiera o del file xml???
dalla tastiera mi pare difficile che una riga contenga 8000 caratteri..
se il file che devi leggere è un file xml ti basta usare un parser xml come xerces (ma ce ne sono molti altri)
Se invece devi leggere un file del tipo chiave valore, ad esempio:
heigth = 20
width = 50
basta caricartelo mediante la classe property che ti genera un hashmap da cui puoi ricavare tutto ciò che vuoi inserendo la chiave da leggere.
Per un file di testo generico invece il metodo migliore e imho quello che ti ho detto prima....
carichi tutto il file in un arraylist di stringhe e usi lo stringtokenizer su ogni riga..
in questo modo anzikè effettuare ogni volta accessi al file accedi alla memoria che è MOOOLTOOO più veloce (anche se solitamente il file viene caricato in cache tramite il prefetching dal sistema operativo, ma mi sa che cmq l'accesso in memoria è + efficiente).
alla fine dipende da quello ke devi fare...
non c'è una soluzione generale...
come diceva qualcuno "the right tool for the right job" cioè prima devi capire bene quali sono le tue esigenze e quindi potrai usare lo strumento che soddisfi meglio le tue esigenze....
cmq se mi spieghi meglio quello che devi fare forse ti posso aiutare

EDIT: OT dimenticavo. DNAROD: domani pom sei precettato a casa mia per darmi una mano col refactoring di diamonds. Puoi mancare solo se è prevista la fine del mondo per domani, è già da troppo tempo ke rimandi
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design   Recensione OnePlus 15: potenza da vendere e batt...
AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media AMD Ryzen 5 7500X3D: la nuova CPU da gaming con ...
Obbligati ad acquistare una scheda madre...
GTA VI su PC? La data non c'è, ma...
Monopattini elettrici, a un anno dal dec...
Tesla Robotaxi, autista di sicurezza si ...
Samsung Galaxy S26: svelate le combinazi...
Microsoft Ignite: arriva Edge for Busine...
OPPO e Lamine Yamal uniscono sport e tec...
Microsoft, NVIDIA e Anthropic siglano un...
SpaceX potrebbe comunicare alla NASA rit...
Scoperte cavità sotterranee scava...
OnePlus anticipa l'arrivo di due nuovi p...
DJI lancia Osmo Action 6: la prima actio...
NASA: conferenza stampa sulla cometa int...
Ex CEO di TSMC passa a Intel: aperta un'...
Gigabyte X870E Aorus Elite X3D, una moth...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 04:27.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v