Skip to content

Commit

Permalink
Finite le modifiche delle label. Modificato il metodo "toValidLabel" …
Browse files Browse the repository at this point in the history
…nel file "Analyze". Ora le label possono contenere solo numeri, non inverte più le lettere e i numeri, non elimina più gli spazi tra una parola e l'altra, cancella gli spazi antecedenti e posteriori alla stringa e non rende più maiuscole le lettere iniziali della label.
  • Loading branch information
Matt345Fire committed Feb 22, 2023
1 parent 0e3ec6e commit 12f7898
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 7 deletions.
10 changes: 5 additions & 5 deletions Logisim-Fork/.idea/jarRepositories.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 19 additions & 2 deletions Logisim-Fork/src/main/java/com/cburch/logisim/circuit/Analyze.java
Original file line number Diff line number Diff line change
Expand Up @@ -216,9 +216,7 @@ public int compare(Instance ac, Instance bc) {
for (Instance pin : pinList) {
// Struttura nomina pin e out di analizza tabaella (Qui la "label" è ancora giusta)
String label = pin.getAttributeSet().getValue(StdAttr.LABEL);
System.out.println(label);
label = toValidLabel(label);
System.out.println(label);
if (label != null) {
if (labelsTaken.contains(label)) {
int i = 2;
Expand Down Expand Up @@ -304,6 +302,24 @@ public int compare(Instance ac, Instance bc) {
*/

// Metodo che controlla il nome delle etichette (specialmente per l'analizza circuito)
private static String toValidLabel(String label) {
boolean letter = false; // false = nella label non ci sono lettere
for(int i = 0; i < label.length(); i++) { // Passa per tutta la label
char c = label.charAt(i);
if(c != ' ') { // Se non è uno spazio

This comment has been minimized.

Copy link
@zMasterAle

zMasterAle Mar 4, 2023

Member

Questo controllo non tiene conto di caratteri diversi dallo spazio che però non sono lettere o numeri (tipo qualche carattere ascii strano che sembra uno spazio ma non lo è, spero di essermi spiegato😂). Prova a usare i metodi isLetter() e isDigit()

This comment has been minimized.

Copy link
@Matt345Fire

Matt345Fire Mar 4, 2023

Author Contributor

Bruh, non vedo l'ora di chiamare il mio pin di input "Ѿ" lol. Cmq quindi vuoi che elimini completamente la possibilità di mettere caratteri speciali? In senso. Ci avevo già pensato ad usare "isLetter()" e "isDigit()". Però cosi escluderei i caratteri speciali. Oltre tutto, sono dell'idea che se un utente volesse chiamare il pin "ҋґѪҨ" è libero di farlo. Dimmi se ho capito bene a quello che ti riferisci! Non ho ancora provato su logisim :)

letter = true; // è una lettera
label = label.trim(); // Toglie tutti gli spazi extra iniziali e finali

This comment has been minimized.

Copy link
@zMasterAle

zMasterAle Mar 4, 2023

Member

Forse questo non serve metterlo nel loop ma basta farlo una volta magari prima del loop

This comment has been minimized.

Copy link
@Matt345Fire

Matt345Fire Mar 4, 2023

Author Contributor

In questo momento, non ricordo perchè l'abbia messo dentro. Sono abbastanza sicuro che ci fosse un motivo. Cmq verifico grazie :)

break; // Esci dal loop
}
}
if(!letter) // Se non sono state trovate lettere
return null; // Restituisci null
else
return label; // Restituisci la label
}

/*
// Vecchio metodo per validare le stringhe
private static String toValidLabel(String label) {
if (label == null)
return null;
Expand Down Expand Up @@ -345,6 +361,7 @@ private static String toValidLabel(String label) {
}
return ret.toString();
}
*/

private Analyze() {
}
Expand Down

0 comments on commit 12f7898

Please sign in to comment.