`
gongjiayun
  • 浏览: 159856 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

一道电信笔试题

阅读更多
    两个字符串(String srcString,String destString)要求把destString字符串按$符分割,且每俩个$输出一个$,$后如果是数字的话分为一位和俩位用srcString来替换;
举例说明:
srcString:10,20,30,40(,为分割符)
destString:您的余额为:$1(或01)元,本月应交$$2(或02)元,下月交:$$$3(或03)  元,结余为:$$$$4(或04)元
输出为:
您的余额为:10元,本月应交$20元,下月交:$30元,结余为:$$40元

package com.sin.stringreplace;

public class Test3 {

	/**
	 * @param args
	 */
	/**1.处理短信内容规则:
       两个字符串(String srcString,String destString)要求把destString字符串按$符分割,并且每俩个$输出一个$,$后如果是数字的话分为一位和俩位用srcString来替换;
       举例说明:
  srcString:10,20,30,40(,为分割符)
  destString:您的余额为:$1(或01)元,本月应交$$2(或02)元,下月交:$$$3(或03)元,结余为:$$$$4(或04)元
     输出为:
     您的余额为:10元,本月应交$20元,下月交:$30元,结余为:$$40元*/

	public static void main(String[] args) {
		String str = "10,20,30,40";
		String strr[] = str.split(",");
		String data = "您的余额为:$1元,本月应交$$2元,下月交:$$$3元,结余为:$$$$4元";
		int index = 0;
		int i = data.indexOf("$");
		
		for(int k=i;k<data.length();k++){
			String ss="";
			for(int j=i;j<data.length();j++){
				i++;
				char src =data.charAt(j);
				if(src == '$'){
					ss += src;
				}
				
				if(src != '$'){
					
					if(Character.isDigit(data.charAt(j))==true){
						ss += src;
						if(Character.isDigit(data.charAt(j+1))==true){
							ss += src;
						}
					}
			        break;
				}
			}
			
			if(ss.length()!= 0){
				
				String rep = "";
				
				if((ss.length()-1)%2!=0){
					
					if(ss.length()-1 ==1){
						rep=strr[index];
					}else{
						
						for(int m=1;m<=(ss.length()-1)/2;m++){
							rep+="$";
						}
						rep+=strr[index];
						
					}
					
				}else{
					
					for(int n = 0;n<(ss.length()-1)/2;n++){
						rep+="$";
					}
					rep+=strr[index];
					
				}
	
				data = data.replace(ss, rep);
				index++;
			}
		}
		System.out.println(data);
	}	
}




分享到:
评论
2 楼 Garfield.Geng 2011-05-17  
略微修改过程:
String newFormatStr = s1.replaceAll("\\$\\d", "%s");
System.out.println(newFormatStr);
System.out.println(String.format(newFormatStr, s0.split(",")).replaceAll("\\$\\$", "\\$"));

1 楼 Garfield.Geng 2011-05-17  
输入:
String s0 = "10,20,30,40";
String s1 = "您的余额为:$1元,本月应交$$2元,下月交:$$$3元,结余为:$$$$4元 ";

过程:
String newFormatStr = s1.replaceAll("\\$\\d", "%s");
System.out.println(newFormatStr);
System.out.println(String.format(newFormatStr, s0.split(",")));

输出:
您的余额为:%s元,本月应交$%s元,下月交:$$%s元,结余为:$$$%s元
您的余额为:10元,本月应交$20元,下月交:$30元,结余为:$$40元

相关推荐

    大唐电信笔试面试题(含部分参考答案)

    【大唐电信笔试面试题解析】 1. 数列问题:这是一个等差数列,每次增加4,所以6后的数字依次为10,18,32,46。 2. 买卖计算:这是一道简单的计算题,通过计算买进卖出的价格差得知,这桩买卖盈利20元。 3. 月球绕...

    中国电信笔试行测题

    "中国电信笔试行测题" 本文档收录了中国电信曾经考过的行测题目,都是比较经典的题目。题目涵盖了逻辑推理、数学运算、语言理解等多个方面,旨在考查考生的逻辑思维能力、语言理解能力和数学运算能力。 第 1 题是...

    论坛上搜集的大唐电信笔试题目

    ### 大唐电信笔试题目解析 #### 题目背景 这些题目来源于网络论坛上的一篇帖子,虽然题目数量不多,但涵盖了不同类型的逻辑与数学问题,旨在考察应聘者的逻辑思维能力、问题解决能力和基本的数学计算能力。以下是...

    中国移动2019招聘笔试完整真题及答案解析.pdf

    中国移动作为中国最大的电信运营商之一,其每年的招聘活动都备受瞩目。2019年招聘笔试环节,考生被要求解答众多类型的题目,用以考察应聘者的综合能力。这份“中国移动2019招聘笔试完整真题及答案解析”资料,不仅...

    林西事业编招聘2020年考试真题及答案解析版(2).docx

    5. 这是一道逻辑匹配题,中医的“号脉”对应西医的“调查:取样”。 6. 根据书籍排列条件,确定哪一本是大的平装本。答案是D:“第8本”。 7. 利润下降可能是因为电信公司在网络覆盖区投入的资金过多。 8. 这是一个...

    华南理工大学电子及通信工程专业硕士考研复试经验.doc

    - **流程**:提交简历和个人项目经历,进行自我介绍,随后根据个人情况提问,并随机抽取一道专业问题。 - **注意事项**: - 准备详细的简历和个人项目介绍,以便于面试官了解。 - 针对可能提出的专业问题进行...

Global site tag (gtag.js) - Google Analytics