Una pequeña práctica diaria (compresión de cuerdas)

Descripción del título: Compresión de cadenas:

  • Comprima los caracteres consecutivos en la cadena original de acuerdo con el número de ocurrencias.
  • Entrada: AACBBBDDDDFFX
  • Salida: A2C1B3D5F2X1

Ideas:

1. Obtener entrada:
use la clase Scanner para crear un objeto de entrada (preste atención al paquete, es decir, la primera línea del programa a continuación), obtenga la cadena que se comprimirá y defina un contador numérico e inicialícelo en 1 , que se utiliza para registrar el número actual de caracteres, porque el carácter actual aparece al menos una vez.
2. Compresión
Utilice el bucle for para obtener el carácter actual y el carácter siguiente ( charAt () ), y luego juzgue si los dos son iguales. Si son iguales, el contador se acumula. Si no son iguales, se emite el carácter actual y el número de ocurrencias (nota: con Salida en forma de cadena, y use ( System.out.print () ). En este momento, el número se restablece a 1.
Pero en este momento, hay un Cuando el bucle llega al último carácter, el siguiente carácter no se puede obtener y aparece una excepción Subíndice fuera de límites ( ArrayIndexOutOfBoundsException ), por lo que antes de obtener el siguiente carácter, primero debemos determinar si el carácter es el último carácter, si es el último carácter, emite el carácter y el valor del contador.

import java.util.Scanner;
public class Test0 {
    
    

		public static void main(String[] args) {
    
    
		Scanner input=new Scanner(System.in);	
		String arr=input.next();
		int number=1;
		
		//遍历每个字符
		for(int i=0;i<arr.length();i++){
    
    
			//获取当前字符
			char c=arr.charAt(i);
			
			//判断是否为最后一个字符
			if(i==arr.length()-1){
    
    
				System.out.println(c + "" + number);
				break;
			}
			
			//获取下一个字符
			char next=arr.charAt(i+1);
			
			if(c==next){
    
    
				number++;//次数累加
			}else{
    
    
				//输出
				System.out.print(c+"" + number);
				//出现次数重置为1
				number=1;
			}
		}
	}

}

Supongo que te gusta

Origin blog.csdn.net/weixin_51529267/article/details/112732266
Recomendado
Clasificación