您的位置:首页 > 编程语言

[编程题] 算法基础-字符移位

2017-03-24 10:24 316 查看
[编程题] 算法基础-字符移位

小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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  编程 java编程题