Input toetsenbord omzetting naar float

Pagina: 1
Acties:

Vraag


  • itcouldbeanyone
  • Registratie: Augustus 2014
  • Laatst online: 12-09 21:49
Ik heb een string "keyboardString" waar alle waardes van het toetsenbord van android in komen.

nu moet die String geconverteerd worden naar een float.
maar de String moet zowel getypt kunnen worden als 1.2 = 1,2 of 1,2= 1,2 of 0xFF = 255.0;
nu doet hij het met punt of komma precies wat die moet doen.
maar zodra ik 0xFF in typ krijg ik 0.0 |:(

er zit ook een gedeelte in het script wat karakters die niet in de string horen verwijderd, en zorgt dat je niet 2 keer een komma kan plaatsen.
dit werkt wel goed, moet alleen de code nog netjes maken.

het enige probleem is dus wanneer ik 0x in typ
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
float valtyped=0.00;
void keyReleased() {
if(keyCode == 66){ adrEdit=false; hideVirtualKeyboard();}  // return
else if(keyCode == 67&&keyboardString.length()<1){keyboardString=""; } // backspace
else if (keyCode == 67 && keyboardString.length() > 0) { 
keyboardString = keyboardString.substring (0, max(0, keyboardString.length()-1));      
    }
if(keyboardString.contains(",")||keyboardString.contains(".")||keyboardString.contains("x")){if(key!=CODED&&key!=','&&key!='.'&&key!='x'){keyboardString+=key;}}// zorgt ervoor dat je geen dubbele kommas kan typen
else{if(key!=CODED){keyboardString+=key;}}
keyboardString=correct_stringB(keyboardString);// verwijderd onnodige karrakters
try{
if(keyboardString.contains("0x")){valtyped=float(unhex(keyboardString.substring(keyboardString.indexOf("x"))));}// dit stukje krijg ik maar niet werkend
else{valtyped=float(keyboardString.replaceAll(",","."));}}catch(Exception e){}
println(valtyped);// print de output naar de console
}


static boolean validCharB(char inputt) { // karakters in dit tabel, worden alleen toegestaan
  boolean returnable=false;
  if (inputt==('0')||inputt==('A')
    ||inputt==('1')||inputt==('B')
    ||inputt==('2')||inputt==('C')
    ||inputt==('3')||inputt==('D')
    ||inputt==('4')||inputt==('E')
    ||inputt==('5')||inputt==('F')
    ||inputt==('6')||inputt==('7')
    ||inputt==('8')||inputt==('9')
    ||inputt==('.')||inputt==('x')
    ||inputt==(',')||inputt==('\n')
   ) {
    returnable = true;
  }

  return returnable;
}

String correct_stringB(String correctable) { // alles wat niet thuis hoort in de string wordt verwijderd
  String returnable="";
  String cc=correctable;
  for (int i=0; i<correctable.length(); i++) {
    char deleteable;
    deleteable=correctable.charAt(i);
    if (!validCharB(deleteable)) {
      cc=cc.replace(str(deleteable), "");
    }
  }
  returnable=cc;
  return returnable;
}

Ben niet slim, maar wel dom

Beste antwoord (via itcouldbeanyone op 17-08-2017 12:15)


  • DJMaze
  • Registratie: Juni 2002
  • Niet online
Wat is de uitkomst van:
code:
1
keyboardString.substring(keyboardString.indexOf("x"))


En wat als ik "1.000" of "1,000" type? Is dat 1000 of 1?

[ Voor 24% gewijzigd door DJMaze op 17-08-2017 12:07 ]

Maak je niet druk, dat doet de compressor maar

Alle reacties


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
Wat is de uitkomst van:
code:
1
keyboardString.substring(keyboardString.indexOf("x"))


En wat als ik "1.000" of "1,000" type? Is dat 1000 of 1?

[ Voor 24% gewijzigd door DJMaze op 17-08-2017 12:07 ]

Maak je niet druk, dat doet de compressor maar


  • itcouldbeanyone
  • Registratie: Augustus 2014
  • Laatst online: 12-09 21:49
DJMaze schreef op donderdag 17 augustus 2017 @ 12:05:
Wat is de uitkomst van:
code:
1
keyboardString.substring(keyboardString.indexOf("x"))


En wat als ik "1.000" of "1,000" type? Is dat 1000 of 1?
Dat is dan een 1 .
Bedoeling is dus waneer ik 0x in het begin van me string zet, dat deze unhexed word.
En of ik nou een punt of komma gebruik dit gezien word als een komma

Of bedoel je dat ik achter die indexOf een +1 moet zetten, "x" kan niet gebunhexed worden, ga ik nog ff proberen

Edit , het werkt thankz , had indd +1 moeten doen.
Stom van me

[ Voor 16% gewijzigd door itcouldbeanyone op 17-08-2017 12:15 ]

Ben niet slim, maar wel dom