Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

205
Vistas
Is it possible to use an array value as a switch case value?

I am trying to create a working Java code. I created an encryption function that takes any symbol in a string and replaces it with a value from an array.

The problem is very simple. Decryption function must take any value written in an array and use it to decrypt. The code describes it better than I do.

   case "1" -> output += n_encryptions[0];
// Then in decrypt():
   case n_encryptions[0] -> output += "1";
// Sadly, this creates an error

My goal is to make an easily changeable encryption and decryption system, since I am planning to change these values in the future.

I need a way to use an array value (n_encryptions[0] in the example) as a case parameter.

Edit: I guess an if statement is the best option. Thanks!

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Is it possible to use an array value as a switch case value?

No, it is not.

Switch labels (to the right of the word case) must be compile-time constant expressions.

I need a way to use an array value (n_encryptions[0] in the example) as a case parameter.

Why do you 'need' this? It surely can be expressed another way,for example by using if.

over 4 years ago · Santiago Trujillo Denunciar

0

AFAIU you problem, a usual approach to this is to have 2 arrays

char[] from = {'a','b','c'};
char[] to = {'1','e','@'};

Read your input char by char, look up the position of the char in from and replace it with the char from the same position in to.

Reverse, the same (to -> from).

over 4 years ago · Santiago Trujillo Denunciar

0

I'm just suggesting a way of solving the problem. You can use a Map<Character, Character> for encryption and another for decryption. You can adapt the following program to your needs.

import java.util.HashMap;
import java.util.Map;

public class Test {
    public static void main (String[] args) {
        Map<Character, Character> encryptionMap = new HashMap<>();
        encryptionMap.put('a', '-');
        encryptionMap.put('b', '+');
        encryptionMap.put('-', '1');
        encryptionMap.put('+', '3');
        
        String plainText = "a+b-a";
        String encryptedText = "";
        for (int i = 0; i < plainText.length(); i++) {
            char ch = plainText.charAt(i);
            encryptedText += encryptionMap.get(ch);
        }
        System.out.println("Plain Text: " + plainText);
        System.out.println("Encrypted Text: " + encryptedText);

        Map<Character, Character> decryptionMap = new HashMap<>();
        decryptionMap.put('-', 'a');
        decryptionMap.put('+', 'b');
        decryptionMap.put('1', '-');
        decryptionMap.put('3', '+');

        String decryptedText = "";
        for (int i = 0; i < encryptedText.length(); i++) {
            char ch = encryptedText.charAt(i);
            decryptedText += decryptionMap.get(ch);
        }
        System.out.println("Decrypted Text: " + decryptedText);
    }
}
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda