[编程题] 算法基础-字符移位
2017-03-24 10:24
316 查看
[编程题] 算法基础-字符移位
小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
你能帮帮小Q吗?
输入描述:
输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.
输出描述:
对于每组数据,输出移位后的字符串。
输入例子:
AkleBiCeilD
输出例子:
kleieilABCD
比较字母大小写的两种方法:
java字符串替换 一般使用substring() 和replace()方法组合使用达到精确替换的目的.
str.substring(0,1) 可以截取str字符串第一
4000
位字符.通过下标控制截取长度.可获得精确字符串
str.replace(“a”,”b”); 把str字符串中所有的字符a都替换成字符b
在java中有3个类来负责字符的操作。
1.Character 是进行单个字符操作的,
2.String 对一串字符进行操作。不可变类。
3.StringBuffer 也是对一串字符进行操作,但是可变类。
String类在继承Object类的时候重写了equals()方法,只是比较两个对象的内容是否相等
StringBuffer类中没有重写Object类的equals()方法,所以比较的是地址和内容。
1.追加和插入字符串
public StringBuffer append(type t);//追加
public StringBuffer insert(int offset,type t);//插入,在offset处加入类型为type的字符串
2.反转和删除字符串
public StringBuffer reverse(); //反转
public StringBuffer delete(int start,int end); //删除
3.StringBuffer类转换成String类
public String toString();
StringBuffer不是不变类,在修改字符串内容时,不会创建新的对象因此,它比String类更适合修改字符串。
StringBuffer类没有提供同String一样的toCharArray方法
StringBuffer类的replace方法同String类的replace方法不同,它的replace方法有三个参数,第一个参数指定被替换子串的起始位置,第二个参数指定被替换子串的终止位置,第三个参数指定新子串
【1】参考详细讲解String与Stringbuffer:http://www.cnblogs.com/kaituorensheng/p/3776484.html
编程:
小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
你能帮帮小Q吗?
输入描述:
输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.
输出描述:
对于每组数据,输出移位后的字符串。
输入例子:
AkleBiCeilD
输出例子:
kleieilABCD
比较字母大小写的两种方法:
1. if(s.charAt(i)>='A'&&s.charAt(i)<='Z') else if(s.charAt(i)>='a'&&s.charAt(i)<='z') 2. for (int i = 0;i < s.length();i++) { if(Character.isUpperCase(s.charAt(i)) == true) { max++; } else if(Character.isLowerCase(s.charAt(i)) == true) { min++; }
java字符串替换 一般使用substring() 和replace()方法组合使用达到精确替换的目的.
str.substring(0,1) 可以截取str字符串第一
4000
位字符.通过下标控制截取长度.可获得精确字符串
str.replace(“a”,”b”); 把str字符串中所有的字符a都替换成字符b
在java中有3个类来负责字符的操作。
1.Character 是进行单个字符操作的,
2.String 对一串字符进行操作。不可变类。
3.StringBuffer 也是对一串字符进行操作,但是可变类。
String类在继承Object类的时候重写了equals()方法,只是比较两个对象的内容是否相等
StringBuffer类中没有重写Object类的equals()方法,所以比较的是地址和内容。
1.追加和插入字符串
public StringBuffer append(type t);//追加
public StringBuffer insert(int offset,type t);//插入,在offset处加入类型为type的字符串
2.反转和删除字符串
public StringBuffer reverse(); //反转
public StringBuffer delete(int start,int end); //删除
3.StringBuffer类转换成String类
public String toString();
StringBuffer不是不变类,在修改字符串内容时,不会创建新的对象因此,它比String类更适合修改字符串。
StringBuffer类没有提供同String一样的toCharArray方法
StringBuffer类的replace方法同String类的replace方法不同,它的replace方法有三个参数,第一个参数指定被替换子串的起始位置,第二个参数指定被替换子串的终止位置,第三个参数指定新子串
【1】参考详细讲解String与Stringbuffer:http://www.cnblogs.com/kaituorensheng/p/3776484.html
编程:
package Exam; import java.util.*; public class moveUpperCase { @SuppressWarnings("resource") public static void main(String[] agrs){ Scanner in = new Scanner(System.in); while(in.hasNext()){ String s = in.nextLine(); System.out.println(getResult(s)); } } private static String getResult(String s) { // TODO Auto-generated method stub int len = s.length(); int k=0; char temp; char[] a = s.toCharArray(); for(int i=0;i<len;i++){ if (a[i]>='a'&&a[i]<='z') { temp = a[i]; for(int j=i;j>k;j--){ a[j]=a[j-1]; } a[k]=temp; k++; } } String reString = String.valueOf(a); return reString; } }
相关文章推荐
- 腾讯2017暑期实习生编程题--算法基础-字符移位
- 腾讯笔试编程题:算法基础-字符移位(C++)
- 腾讯2017暑期实习生编程题——算法基础-字符移位
- 算法基础-字符移位----腾讯2017暑期实习生编程题
- 腾讯校招编程题——算法基础-字符移位
- [编程题] 算法基础-字符移位
- [编程题] 算法基础-字符移位
- [编程题] 算法基础-字符移位
- 算法与数据结构——算法题 27:字符移位(腾讯2017暑期实习生编程题) ? 待解决
- 腾讯笔试题-算法基础-字符移位
- 【真题】腾讯2017暑假实习生编程题 算法基础-字符移位
- 算法基础-字符移位(逻辑)
- 算法基础-字符移位
- 算法基础-字符移位
- 算法基础-字符移位
- 算法基础-字符移位
- 算法基础-字符移位
- 腾讯笔试题 1 算法基础-字符移位
- 腾讯 算法基础-字符移位
- 算法基础-字符移位