1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Como separar os caracteres de uma string seguindo certas regras?

Olá! Estou fazendo um programa de criptografia RSA...

Eu teria que separar os caracteres de uma String e salvá-los em um vetor, sendo que estes caracteres são números. Por exemplo: tenho uma String chamada msgDEC, se essa string tiver o valor "1022249910992411221425", tendo uma variável inteira n com o valor 391, teria que ficar assim:

102 - 224 - 99 - 109 - 92 - 41 - 122 - 142 - 5

Ou seja, tem que separar o valor de msgDEC em blocos (que serão salvos em um vetor). As regras são as seguintes:

  • O bloco não pode começar com zero;
    • O bloco não pode ter um valor maior que n.

Eu sei que tem que usar: Substring, StringBuilder, length, mas não tenho ideia de como fazer. Me ajudem, por favor!

Obs: Estou usando a linguagem Java e o ambiente de programação NetBeans.

  • Quantos algarismos um bloco precisa ter?

    Cassio Danilo   23 de jul de 2015
  • Quanto a isso, só depende da variável n. Por exemplo, se n é 33 e temos a String 12562145 deveríamos separar em 12 - 5 - 6 - 21 - 4 - 5, mas se n fosse 128 deveríamos separar em 125 - 62 - 14 - 5, ou seja, se n tem três algarismos é possível que tenhamos um bloco com três algarismos, agora se n tem 2 algarismos é impossível que tenhamos um bloco com três algarismos, isso porque estamos nos referindo a inteiros. Em outras palavras: A quantidade de algarismos em um bloco não é fixa, pois depende da variável inteira n.

    CaduCEAF   24 de jul de 2015
  • O programa vai sempre avançar um algarismo enquanto estiver dentro das regras citadas na questão, por exemplo: n = 52 e msgDEC = "1203456789", neste caso o programa iria analisar o número 1, é menor que n então ele avança para o 2, ainda é menor que n, mas já tem 2 algarismos (assim como n, por isso não pode mais avançar). Observe que se o primeiro bloco fosse 12, o próximo começaria com 0 (O que não é permitido), então o programa teria que separar o primeiro bloco em 1, assim o próximo não começaria com 0. Neste caso os blocos seriam os seguintes: 1 - 20 - 34 - 5 - 6 - 7 - 8 - 9.

    CaduCEAF   24 de jul de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags criptografia java ou faça a sua própria pergunta.