• (Java实现) 洛谷 P1098 字符串的展开


    在这里插入图片描述

    在这里插入图片描述

    import java.util.ArrayList;
    import java.util.Scanner;
    
    public class zifuchuandezhankai {
    	static ArrayList<Integer> list = new ArrayList<Integer>();
    	public static void main(String[] args) {
    		char a, b;
    		int p1, p2, p3,temp=1;
    		String s,str="",s1="",s2="";;
    		Scanner sc = new Scanner(System.in);
    		p1 = sc.nextInt();
    		p2 = sc.nextInt();
    		p3 = sc.nextInt();
    		s = sc.next();
    		for (int i = 1; i < s.length() - 1; i+=temp) {
    			temp=1;
    			if (s.charAt(i) == '-' ) {
    				a = s.charAt(i - 1);
    				b = s.charAt(i + 1);
    				//||  (Character.isDigit(a) && Character.isLetter(b)  )
    				if((a>=65 && b<65 ) || (a<65 && b>=65) || a>=b){
    					s=s.replaceFirst("-", str);
    					list.add(i);
    					continue;
    				}
    					if(Character.isLetter(a) && a>=97){
    						a-=32;
    					}
    					if(Character.isLetter(b) &&  b>=97){
    						b-=32;
    					}
    					if(a==b){
    						s=s.replaceFirst("-", "");
    						list.add(i);
    						continue;
    					}
    				for (int j = a+1; j <b; j++) {
    					//char c = Character.forDigit(j,10);
    					char c = (char)j;
    					str=str+c;
    				}
    				if(p1==1){
    					str=str.toLowerCase();
    				}
    				else if(p1==2){
    					str=str.toUpperCase();
    				}
    				else{
    					for (int j = 0; j < str.length(); j++) {
    						s1=s1+"*";
    					}
    					str=s1;
    				}
    				for (int j = 0; j < str.length(); j++) {
    					for (int j2 = 0; j2 < p2; j2++) {
    						s2=s2+str.charAt(j);
    					}
    				}
    				str=s2;
    				if(p3==2){
    					StringBuffer ss = new StringBuffer(str);
    					ss=ss.reverse();
    					str =ss.toString();
    				}
    				temp=str.length();
    				s=s.replaceFirst("-", str);
    			//	list.add(str);
    			//	System.out.println(str);
    			//	list.add(str);
    				//System.out.println(str);
    				str="";
    				s1="";
    				s2="";
    				}
    			}
    		
    		
    		StringBuffer sss = new StringBuffer(s);
    		for (int j = list.size()-1; j >=0 ; j--) {
    			sss.insert(list.get(j), "-");
    		}
    //		
    //		sss=sss.substring(0, i)+sss.substring(i+1);
    //		sss.append(str, i, i);
    		System.out.println(sss);
    	}
    
    }
    
    
  • 相关阅读:
    maven部署tomcat项目,403错误解决
    Android 常见问题收集 (持续更新)
    android 图片进度条
    jquery 监听radio选中,取值
    [转] 解决HttpServletResponse输出的中文乱码问题
    国内外最全的asp.net开源项目 (转)
    c# 模拟 网页实现12306登陆、自动刷票、自动抢票完全篇(转)
    C#网页自动登录和提交POST信息的多种方法(转)
    C# 网页自动填表自动登录(转)
    23个.NET开源项目
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12948893.html
Copyright © 2020-2023  润新知