字符串转换算法

来源:互联网 发布:交警网络执法直播流程 编辑:程序博客网 时间:2024/05/23 20:15

/*2. 编写一个程序,给定一个字符串“aaa果4金5a”。
* 要求:如果出现数字,把数字后面的字符替换成数字的个数个。比如这个字符串要求被替换成“aaa果金金金金aaaaa”。*/

package com.rachel02.www;

public class NumberToString {

public String ChangeNumber( String str )  //将str里的数字转换成n个后面的字符{    char st[] = new char[50];      int j=0;    for (int i = 0; i < str.length(); i++)  //遍历字符串    {        char ch = str.charAt(i);        if( ch>=48 && ch<=57 )   //如果发现数字        {            //numberToString[j].index = i;       //出现数字的ch下标            //numberToString[j].number = ch[i]-48;   //数字的值是几            //j++;            for(int m=0; m<(ch-48); m++)            {                if( (i+1)<str.length())                  //如果当前数字不是str的最后一个,再操作                {                    st[j++] = str.charAt(i+1);                }            }        }        else {            st[j++] = ch;   //st是str操作后的的字符数组        }    }    String s = String.valueOf(st);   //char[] -> string    System.out.println(s);    return s;}

}

//////////////////////////////////////////////////////////////////////////

/*
5. 给你一个字符串数组 String []strings=new String{“tom”,”is”,”a”,”boy”};
然后让你输入一句话,如果你的输入和他给的一样的话,就原文不动的输出。如你输入 tom is a boy就输出 tom is a boy。
但是如果你输入tom is an open,输出的时候要把一样的写下来,不一样的找有没有对应的字母一样的,
如果有就在那个一样的字母后加一个”?”
//循环匹配
*/
public class StringShow {

final String strings[] = { "tom", "is", "a", "boy"}; //固定字符串public String FindSame(String str)    {    String string = null;            //!!!返回的字符串    if( str.equals("tom is a boy") )     //先判断,如果输入的字符串与strings相等,就直接输出    {        return str;    }    else            //如果不相等,则开始    {        int number = 0;        //字符个数纪录,遇到空格判断是否有单词        String word = null;    //用来记录字符串中的单词        for(int i=0; i<str.length(); i++)             // 逐个拿出字符串中的字符,判断是否为空格        {            char ch = str.charAt(i);            if( ch != 32 )                   //先判断不是空格的情况            {                if( word==null )                         //若word==null,不能word+=""+ch;这样word==nullch                {                    word = ""+ch;                }                else {                    word += ""+ch;                }                //number++;            }            if( ch==32 || (i==str.length()-1) )    //找到了空格            {                if( number>0 )  //有单词 ,就要开始查找                {                    for(int j=0; j<strings.length; j++)   //逐个匹配                    {                        if(word.equals(strings[j]))                                  //如果word == strings[i],就添加到输出字符串                        {                            if(string==null)                            {                                string = word+" ";                            }                            else                             {                                string += word+" ";       //...                            }                    System.out.println("每一次的string:"+string);                        }                    }                    word = null;       //word和number都要清空                    number = 0;                }                   }        }        return string;    }}

}

阅读全文
0 0
原创粉丝点击