7-3 Impression du numéro de page du document Office (20 points)

Examen des anciennes questions java
7-3 Impression du numéro de page du document Office (20 points)
Dans les logiciels bureautiques (Word, Excel), parfois seule une partie du document entier doit être imprimée et l'utilisateur doit sélectionner la plage de numéros de page à être imprimé. Le format de plage de numéros de page actuellement entré est défini comme suit: séparés par des virgules, et-peut être utilisé pour indiquer des numéros de page continus. Par exemple: 1,3,5-9,20. Indique que les numéros de page à imprimer sont 1, 3, 5, 6, 7, 8, 9, 20.

Cette question nécessite une ligne de chaîne de caractères à lire comme la plage de numéros de page à imprimer. Besoin de prêter attention aux points suivants:

1. La plage de numéros de page peut être saisie dans le désordre. Par exemple: 5,3,7,9-10,1-2;
2. La définition du numéro de page continue ne peut pas être saisie dans l'ordre croissant. Par exemple: 1,9,5,20-15,10;
3. La plage de numéros de page saisie peut être répétée. Par exemple: 1,9,15,5-10,12-20;
format d'entrée: la
première ligne: une chaîne formatée représentant la plage de numéros de page

Format de sortie: affiche
les numéros de page à imprimer dans l'ordre croissant, séparés par des espaces

Échantillon d'entrée:

1,3,5-9,20

Exemple de sortie:

1 3 5 6 7 8 9 20

Échantillon d'entrée:

12-20,1,15,9,5-10

Exemple de sortie:

1 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20

ans:

import java.util.*;
public class Main {
    
    

	public static void main(String[] args) {
    
    
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		String s=in.next();
		String[] a=s.split(",");
		judge jj=new judge();
		Set<Integer> set=new HashSet<>();//要求没有重复的元素,使用集合处理
		
		for(int i=0;i<a.length;i++) {
    
    
			if(jj.isInt(a[i])) {
    
    //如果是整数
				set.add(Integer.parseInt(a[i]));//添加到集合中
			}else {
    
    //如果不是整数
				String[] temp=a[i].split("-");
				int num1=Integer.parseInt(temp[0]);
				int num2=Integer.parseInt(temp[1]);
				if(num1>num2) {
    
    
					int tt=num1;
					num1=num2;
					num2=tt;
				}
				
				for(int ii=num1;ii<num2;ii++) {
    
    
					set.add(ii);//添加到集合
				}
			}
		}
		int[] arr=new int[set.size()];
		int len=0;
		for(Integer i:set) {
    
    
			arr[len++]=i.intValue();
		}
		
		Arrays.sort(arr);//排序,默认小到大
		
		for(int ii=0;ii<arr.length;ii++) {
    
    //输出
			System.out.print(arr[ii]);
			if(ii<arr.length-1)System.out.print(" ");
		}
	}
}

class judge{
    
    
	public boolean isInt(String s) {
    
    //判断是否是整数
		for(int i=0;i<s.length();i++) {
    
    
			if(!(s.charAt(i)>='0'&&s.charAt(i)<='9')) {
    
    
				return false;
			}
		}
		return true;
	}
}

Je suppose que tu aimes

Origine blog.csdn.net/timelessx_x/article/details/111910543
conseillé
Classement