
En una de nuestras páginas, uno de nuestros visitantes nos pedía un programa sobre como invertir una cadena en Java. Vamos a ver que código necesitamos para poder hacer esto.
Lo primero es tener una cadena. Esto es sencillo:
String sCadena = "LineaDeCodigo";
La idea es muy simple. Iremos recorriendo la cadena, carácter a carácter, desde el último carácter hasta el primero. Para ello nos apoyamos en un bucle for.
for (int x=sCadena.length()-1;x>=0;x--) sCadenaInvertida = sCadenaInvertida + sCadena.charAt(x);
Para obtener el último carácter lo haremos mediante el método .length() que nos da el tamaño de la cadena y restándole uno. Esto es así ya que los caracteres de la cadena están numerados del 0 al tamaño de la cadena menos uno.
Ahora solo tendremos que volcar a consola la cadena invertida:
System.out.println(sCadenaInvertida);
Yuliana
PROGRAMA DE JAVAAMARGORP ED JAVAalguien me ayuda a que salga asi porfavor
Jose
Excelente codigo, es practicamente igua que c++
yasmin
Escribir una clase en JAVA que revierta una cadena de palabras
o Entrada: «Mi Diario JAVA»
o Salida: «JAVA Diario Mi»
alguien que me ayude con este ejercicio
Víctor Cuervo
Buenas yasmin,
Tienes el ejemplo explicado en http://lineadecodigo.com/java/invertir-una-frase-en-java/
Espero que te sirva de ayuda.
Saludos.
Juan Pablo Pérez
Buenas como hago para que el código no revierta cierta palabra por ejemplo que si pongo hola Mundo no la revierta e probado poner el código dendro do, while o utilizar el if pero nada de eso funciona alguien me puede decir como realizarlo
GGG
necito resolver este problema, alguien me podria ayudar
La pobre Alicia se encuentra perdida, y lleva ya varios días dando vueltas por el lugar, sin encontrar al gracioso conejo que la llevó allí.Para ayudar a Alicia, a encontrar el camino a su casa tienes que ayudarla a leer los letreros de las calles, porque el conejo se ha encargado de invertir sus letras, dejando a la pobre Alicia sin nada que hacer. ¿Serías capaz de ayudar a esta pobre e inocente niña?
Especificación de entrada
En la primera línea un entero 1 <= N <= 1000, que es la cantidad de carteles. Por cada una de las N líneas siguientes, una cadena de caracteres compuesto por letras minúsculas y mayúsculas, que será la el nombre del i-ésimo cartel. Los nombres de las calles, nunca van a tener más de 30 caracteres.
Especificación de salida
Por cada cartel, se debe imprimir su nombre real, antes de que el conejo juguetón lo invirtiera.
juan manuel
necesito ayuda en este punto no he podido invertir la palabra
Realizar una función que, dada una lista, devuelva una nueva lista cuyo contenido sea igual a la original pero invertida. Así, dada la lista [‘Di’, ‘buen’, ‘día’, ‘a’, ‘papa’], deberá devolver [‘papa’, ‘a’, ‘día’, ‘buen’, ‘Di’].
Víctor Cuervo
Buenas es tan sencillo como definir una clase List e invertirla con las ayudas de las colecciones.
Lo tienes explicado en http://lineadecodigo.com/java/invertir-una-lista/
Espero que te sirva.
Saludos.
Oswaldo
Gracias por el codigo pero tengo una prregunta. En el linea de codigo «x=sCadena.length()-1» porque se resta menos uno? se supone que .Length te debe dar el máximo de caracteres. entonces porque se resta uno?
Víctor Cuervo
Buenas,
Eso es porque los caracteres empiezan en el índice 0 y el último carácter es el tamaño de la cadena-1.
Saludos.
Jenniffer
Crear un programa que dada la entrada de una cadena de caracteres lo imprima o muestre en pantalla al revés. Ejemplo en vede que diga hola que diga aloh
Víctor Cuervo
Jeniffer, es el código explicado arriba. Lo que tienes que hacer es cambiar el valor de sCadena y poner «hola».
Saludos.
azc
como invierto el contenido de un archivo.txt q maneja cadenas dentro de el quiero invertir la lineas la ultima q sea la primera y la 1era la ultima linea
(cadenas)
aldo
como hago para crear el metodo ?
Víctor Cuervo
@aldo,
Puedes crear un método que sea:
Laura
Puedo invertir char cadena2[][] = new char [1][n];
de la forma mostrada? Una cadena de char puede usar length?
for ( x = cadena2.length()-1; x>=0; x–)
cadenainvertida= cadenainvertida + cadena2.charAt(x);
Cristian Benavides
No veo necesario el uso de bucles, gastas memoria a lo tonto les dejo una forma de hacerlo en una sola linea de código, Saludos.
var cadena = ‘abcdfghijklmnopqrst’;
var alrrevez = cadena.split(«»).reverse().join(«»);
ana
holap necesito saber como calcular el bit de paridad vrc y lrc de una palabra cuando es introducida por un usuario en java me puedes ayudar gracias
Rolas
Gracias, lo estaba intentando con otras formas
pero nunca se me ocurrio la concatenacion
con la cadena invertida
gracias!
alex
hola si me pudiera ayudar necesito invertir una cadena y aparte agregarle un simbolo
ejemplo : la casa
invertirla
al asac
y despues agregarle un simbolo
a/l/ a/s/a/c
muchas gracias :)
PrinCCeziitha
Disculpaaa m urge un programaa.. que llebe caracteres, nmeros y float, entiendo algo pero no me ejecuta.. si m podras ayudar acerlo xk d vdd voi a reprobar si no lo entrego el lunes… Plzzz comunkate conmigo plz!
lineadecodigo
@varixela, @bryan,
Para los ejemplos de consonantes y vocales hemos creado
Espero que os sean de ayuda ambos ejemplos.
Jeyson
buenas Pues esta execelente el codigo de la Inversion pero no se como podira apliacarla a este codigo que me tira siempre el error del -1, y no se como utilizar en ves del String en Char o algo asi la verdad no lo se muy bien.
import java.io.*;
public class CadenaInvertida
{
public static void main(String[] args)
{
char[] cadena = new char[80];
char[]sCadenaInvertida=new char[80]
int car, x = 0,i=0;
try
{
System.out.println(«Escriba una cadena de caracteres:»);
while ((car = System.in.read()) != ‘\r’ && i =0;x–)
sCadenaInvertida = sCadenaInvertida + sCadena.charAt(x);
System.out.println(sCadenaInvertida[x]);
i++;
}
while (i < cadena.length && cadena[x] != '');
}
catch(IOException ignorada) {}
}
}
Gracias de Antemano y la verdad no se mucho de progra.
Angel
pues el link que publicastes no funciona y despues de algunos intentos e podido resolver el proglema en un principio pensaba que era con este metodo despues de buscar en contre otra forma publico el codigo enseguida:
import java.io.*;
public class Cadena2{
public static void main(String[] args) throws IOException{
BufferedReader leer = new BufferedReader(new InputStreamReader(System.in));
String frase;
int largo, i;
System.out.println(«Digite una frase: «);
frase=leer.readLine();
largo=frase.length();
StringBuffer word = new StringBuffer(largo);
for(i=0; i<largo;i++){
word.append(frase.charAt(i));
}
for(i=0;i<largo;i++){
String temp = word.substring(0,(largo-1));
word.setCharAt(0,word.charAt(largo-1));
word.delete(1,largo);
word.insert(1,temp);
System.out.println(word.toString());
}
}
}
lineadecodigo
@Angel,
Te hemos resuelto el ejercicio que nos solicitabas en
http://lineadecodigo.com/java/rotar-array/
Espero que te sea de utilidad. :-D
lineadecodigo
@lulo,
Qué error te da? Qué es lo que no funciona?
lulo
no funciona
lineadecodigo
@Angel,
Tienes que rotar el array con la palabra. Para rotar el array puedes utilizar este simple código.
int a = theArray[0];
int i;
for(i = 0; i < theArray.length-1; i++) theArray[i] = theArray[i+1]; theArray[i]= a;Espero que te sirva.
lineadecodigo
@bryan,
Puedes aplicar lo mismo que @Varixela pero con esConsonante() y definiendo una expresión regulaar con las consonantes.
lineadecodigo
@Varixela,
Puedes iterar sobre las letras de la palabra y en cada iteración llamar a un método que sea esVocal().
El método esVocal() podría utilizar una expresión regular con «aeiou».
Nos ponemos manos a la obra para publicarlo.
Angel
aver si me pueden ayudar tengo que hacer un programa que pida una cadena de caracteres y despues los imprima de la siguiente forma.
suponiendo que introducio HOLA:
deveria imprimir
HOLA
OLAH
LAHO
AHOL
HOLA
aver si alguien save como hacerlo para que me de una ayudada.
bryan
bueno porfavor me podrin ayudar kisiera un programa para hallar solamente consonantes y no vocales… espero su ayuda gracias?
Varixela
hola!
tengo que hacer un código que al introducir una palabra, me despliegue un menú con las vocales y me diga cuantas y cuales vocales hay en la letra introducida.
POR FAVOR NECESITO AYUDA!!
u_U
lineadecodigo
@wlises r,
Me alegro que te haya sido de utilidad. :-)
wlises r.
k jevi, me sirvio mucho para un pequeño soft que hacia k guarda un texto jeje
lineadecodigo
@trasock,
Por partes… La última letra de una cadena:
char ultimaletra = palabra.charAt(palabra.length()-1);
Para saber si es vocal o consonante puedes utilizar un IF y un SWITCH. Con el IF tienes que comprobar que es una letra. Para ello traduces la letra al ASCII y ves si está entre el código 65 y el 90. Esto son las letras en mayúsculas. Así que tendrás que convertir la letra en mayúsculas.
String palabra = «a».toUpperCase();
char ultimaletra = palabra.charAt(palabra.length()-1);
int valor = (int)ultimaletra;
if ((valor>=65) && (valor<=90))
System.out.println("Es una letra");
else
System.out.println("No es una letra");
En el caso de que sea letra tienes que aplicar el SWITCH. El cual compruebe si la letra es A, E, I, O, U. Algo así:
switch (ultimaletra) {
case 'A':case 'E': case 'I': case 'O': case 'U':
System.out.println("Es una vocal");
break;
default:
System.out.println("Es una consonante");
}
Espero que te oriente. De todas maneras escribiré un artículo sobre el tema para que te quede más claro.
trasock
io kiero sabr como imprimir el ultimo caracter de una palabra cualkiera no importa el num de caracteres y ke me diga si el ultimo caracter es una vocal o una constant, ya se ke se usa el if else pero no se como aplicarlo me ayudan???
diana katherine
graxias
daniel
Gracias pana fue de mucha ayuda para el proyecto q tenia q hacer de programacion…!
joel
//metodo que invierte una cadena
static void invertir_cad(String cad){
String cadM , cadm ;
for (int x=cad.length()-1;x>=0;x–)
cadInvertida = cadInvertida + cad.charAt(x);
JOptionPane.showMessageDialog(null,»La cadena en Invertida es:»+cad);
}
no me corre me sale error en
cadInvertida = cadInvertida + cad.charAt(x);
lineadecodigo
@Javier Arzola,
Muy buena aportación. Muchas gracias.
Javier Arzola
Muchas gracias me fué de mucha ayuda tu código, era lo que me faltaba para terminar un código para convertir numeros a octal, binario y hexadecimal.
Hice un método reutilizable con tu código:
public class ReverseString {
public static String Reverse(String texto)
{
String cadena;
String CadenaInvertida=»»;
cadena=texto;
for (int i=(cadena.length()-1);i>=0;i–)
CadenaInvertida = CadenaInvertida + cadena.charAt(i);
return CadenaInvertida;
}
}
Suerte.
lineadecodigo
@adriano,
¿No te sirvió el código de arriba?
adriano
pero que se en java por fa ayudaaaaaa
adriano
como puedo invertir una cadenas ejemplo: la casa verde, que imprima «verde casa la». gracias
J.v.C
A orales esta muy bueno ese tip
lineadecodigo
@zlatan,
¿Que las invierta directamente una vez insertadas o que al presionar sobre un botón las muestre invertidas en otro campo?
¿Que framework gráfico utilizas: AWT, Swing o SWT?
zlatan
como le hago para que en una interfaz, al agregar una cadena invierta las letras al reves
gosperro
String cadena=»lo que quieran»;
StringBuilder builder=new StringBuilder(cadena);
cadena=builder.reverse().toString();
Victor Manrique
como hago para ke esa misma palabra invertida, la eleve a la potencia ejemplo (juan)3 = juan juan juan
louego sacarles sus sufijos ejemplo
juan= juan , uan, an, n
gracias si me lo puedes enviar a mi correo, gracias linea de codigo
TeRe
como puedo hacer k se invierta una palabra de 20 letras????
osea cual seria el codigo.
y como puedo en un programa llamar a otro programa???
medusa
hola alguien sabe como invertir una cadena , palabra por palabra llamandola de un archivo test y usando la consola se los agradeceria muchoooo es pa mi examen
Luna
este me sirvio muchisimo
gracias por poner articulos como este
juanito
los amo a todos , informaticos lindos guapos sabrosos, los quiero muxo ojala los conozca algun dia y les pueda llegqar a conocer intimamente los amooooooooo besitos
chepe
q onda mucha com van yo quisiera sbaer si no me pueden dar el codigo para recorrer una cadena de string caracter por caracter
azmic
q tal.. necesito saber como disfrasar una cadena de el usuario escribe se le kiten 2 letras, si es F q se imprima D
…
de una cadena
String s=»hola mundo»
como hacer q se imprime de la siguiente manera
«fnjx knlbn»
sele reducen en 2 letras
si algien me puede ayudar mil gracias
juan
me siento de la chingada no le entiendo nada a lo de la programacion creo que no sirvo para esto ni para nada de todas formas grax por la informacion pues si alguien que sepa programar me pudiera dejar su correo aqui para agregarlo grax
jose
k´buena informacion gracias
alfonso
gracias por esta informacion me sirvio para resolver untrabajo de programacion…………
lineadecodigo
@Ely,
Hemos publicado el código de como convertir una cadena a mayúsculas.
Espero que sea de ayuda.
FLRA
Te paso todo el codigo, captura una cadena, eliges a k kieres k se convierta y te la imprime convertida!
class MayusMinus
{
public static void main (String args[])
{
InputStreamReader isr;
isr=new InputStreamReader(System.in);
BufferedReader br;
br=new BufferedReader(isr);
String cadena;
int opc;
try{
System.out.println(«Cadena:»);
cadena=br.readLine();
System.out.println(«1.Minusculas 2.Mayusculas:»);
opc = Integer.parseInt( br.readLine());
System.out.println(«»);
if(opc==1)
{ System.out.println(cadena.toLowerCase());}
else
{
if(opc==2)
{ System.out.println(cadena.toUpperCase());}
}
}
catch(IOException ex)
{System.out.println(«Ocurrió error al leer»);
return;
}
}
}
Ely
como hago una cadena q me cnvierta letras minusculas a mayusculas??’
andree
esto va para felix … pues deberias poner una condicional (if) cosa que el usuario no pueda meter mas de tres caracteres
ejemplo:
if(cad.length==3){
// proceso a realizarse
}else{
System.out.print(«solo se aceptan cadena de tres caracteres como maximo»);
}
felix
bueno,pero como hago para invertir una cadena que solo me admita 3 caracteres como maximo o sea que el usuario solo pueda digitar 3 caracteres.
a
perdon :D si sale , se me olvido declarar la «cadenainvertida» inicializarla con » » . thx
a
no sale :S