Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Aiuto su trasformazione da c# a java

    mi sono fatto un programmino in c# e vorrei farlo anche in java.
    sto cercando di trasformarlo passo passo.
    ho questo metodo:
    codice:
        private boolean findString(String stringVal, char charVal) {
            for (char c : stringVal.toCharArray()) {
                if (c == charVal) {
                    return true;
                }
            }
            return false;
        }
    che devo richiamare qua:
    codice:
        private String extractChar(boolean bCognome) {
            String stringVal = nome;
            if (bCognome) {
                stringVal = cognome;
            }
            String otherVal = "";
            String vocali = "AaEeIiOoUu";
            int numConsonanti = 0;
            int numVocali = 0;
            for (int i = 0; i < stringVal.length(); i++) {
                if (!findString(vocali, stringVal[i]) && stringVal[i] != ' ') {
                    otherVal += stringVal[i]; 
                    ++numConsonanti;
                }
    ..................
            }
        }
    ho un problema sulle righe in rosso (che invece nn ho in c#).
    in pratica mi dice che vuole un array ma ha trovato uno String 8giustamente direi).

    vi posto anche il codice in c# magari può servire:
    codice:
    private string ExtractChars(bool bCognome)
        {
            string strVal = m_strNome;
            if (bCognome)
            {
                strVal = m_strCognome;
            }
            string retValue = "";
            string strVoc = "AaEeIiOoUu";
            int numCon = 0;
            int numVoc = 0;
            for (int i = 0; i < strVal.Length; ++i)
            {
               if (!FindString(strVoc, strVal[i]) && strVal[i] != ' ')
                {
                    retValue += strVal[i];
                    ++numCon;
                }
    ..........

  2. #2
    Cosa devi fare esattamente? Qual'è la specifica del problema?
    mi riferisco a che risultato vuoi ottenere con extractChar.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    a parte quello c'è anche il metodo toCharArray che restituisce un array di caratteri (e mantiene la logica che ha).
    Certo info sul risultato di extractChar aiuterebbero a capire se ci sono altre vie per ottenere quello che ti serve

  4. #4
    eccomi allora quel metodo nn fa altro che estrarre le tre consonanti o vocali dal nome e cognome.
    mi server per il calcolo del codice fiscale.
    cmq sono riuscito a mettere a posto con toCharArray!

  5. #5
    atro problema.
    in c# ho questo metodo:
    codice:
        private char CodFiscControl(string strVal)
        {
            int pesi = 0;
            int[] arrPesi = {1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 1, 0, 5, 7, 9, 13, 15, 17, 19, 21,
    		    2, 4, 18, 20, 11, 3, 6, 8, 12, 14, 16, 10, 22, 25, 24, 23};
    
            strVal = strVal.ToUpper();
    
            for (int i = 0; i < strVal.Length; ++i)
            {
                if (((i + 1) % 2) == 0)
                {
                    if (Convert.ToInt32(strVal[i]) >= Convert.ToInt32('0') && Convert.ToInt32(strVal[i]) <= Convert.ToInt32('9'))
    .......
    in java lo sto traducendo così:
    codice:
    private char CFControl(String stringVal) {
            int pesi = 0;
            int[] arrayPesi = {1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 2, 4, 18, 20, 11, 3, 6, 8, 12, 14, 16, 10, 22, 25, 24, 23};
            stringVal = stringVal.toUpperCase();
            for (int i = 0; i < stringVal.length(); ++i) {
                if (((i + 1) % 2) == 0) {
                    if(Integer.parseInt(stringVal[i]) >= Integer.parseInt("0") && Integer.parseInt(stringVal[i]) <= Integer.parseInt("9"))
    mi da però questo problema:
    array required, but java.lang.String found
    if(Integer.parseInt(stringVal[i]) >= Integer.parseInt("0") && Integer.parseInt(stringVal[i]) <= Integer.parseInt("9"))
    come posso risolvere??

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    non è che puoi fare la traduzione letterale, qualcosa devi pur cambiarla.
    L'errore è chiaro: si aspetta un array ma gli passi un oggetto di tipo string.

    stringVal è appunto una stringa, stringVal[i] è errato.
    Al max stringVal.toCharArray()[i]
    ma diventa inefficiente fatto ogni ciclo

  7. #7
    Originariamente inviato da valia
    non è che puoi fare la traduzione letterale, qualcosa devi pur cambiarla.
    L'errore è chiaro: si aspetta un array ma gli passi un oggetto di tipo string.

    stringVal è appunto una stringa, stringVal[i] è errato.
    Al max stringVal.toCharArray()[i]
    ma diventa inefficiente fatto ogni ciclo
    eh lo so, l'esercizio è proprio quello.
    di cambiamenti ne ho fatti già un pò solo che ogni tanto mi intoppo.

    quindi diresti così:
    codice:
         if (stringVal.toCharArray()[i] >= Integer.parseInt("0") && stringVal.toCharArray()[i] <= Integer.parseInt("9")) {
                        pesi += stringVal.toCharArray()[i] - Integer.parseInt("0");
                    }
    in effetti così nn ho errori ma a parte l'efficienza, il risultato è lo stesso?
    cioè, le due formule sono equivalenti?

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    personalmente non l'ho testato, ma puoi provare ad eseguire i due pezzi di codice con gli stessi input, se l'output non varia i due pezzi di codice sono equivalenti. A prima vista dovrebbero essere equivalenti (in termini di output), non in termini di tempi di esecuzione (visto che trasformi in array ad ogni ciclo) e non trascurare mai le problematiche di efficienza.

    Traduzione letterale fino ad un certo punto, perché si sono due linguaggi ad oggetti simili, ma non sono uguali (ognuno ha regole proprie) quindi un minimo mdi trasformazione e adattamento è richiesta solo per rispettare le regole che ognuno ha.

  9. #9
    Originariamente inviato da valia
    Traduzione letterale fino ad un certo punto, perché si sono due linguaggi ad oggetti simili, ma non sono uguali (ognuno ha regole proprie) quindi un minimo mdi trasformazione e adattamento è richiesta solo per rispettare le regole che ognuno ha.
    eh lo so lo so.
    così facendo ho scoperto un sacco di cose.
    nn è male come come esercizio.
    cmq appena finisco tutto provo e ti faccio sapere.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.