今天小编就为大家分享一篇关于Java算法之串的简单处理,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 题目如下: 串的处理
在实际的开发工作中,对字符串的处理是最常见的编程任务。
本题目即是要求程序对用户输入的串进行处理。具体规则如下:
1. 把每个单词的首字母变为大写。
2. 把数字与字母之间用下划线字符(_)分开,使得更清晰
3. 把单词中间有多个空格的调整为1个空格。
例如:
用户输入:
you and me what cpp2005program
则程序输出:
you and me what cpp_2005_program
用户输入:
this is a 99cat
则程序输出:
this is a 99_cat
我们假设:用户输入的串中只有小写字母,空格和数字,不含其它的字母或符号。
每个单词间由1个或多个空格分隔。
假设用户输入的串长度不超过200个字符。 方法一:
public class 串的简单处理 {
public static void main(string[] args) {
scanner scanner = new scanner(system.in);
string string = scanner.nextline();
vector<character> vector = new vector<character>();
for (int i = 0; i < string.length(); i++) {
vector.add(string.charat(i));
}
try {
int index = 0;
while (index < vector.size()) {
//判断第一个是否为小写的英文字符,是的话进行操作
if (index == 0 && vector.elementat(index) >= 'a'
&& vector.elementat(index) <= 'z') {
//replaces the element at the specified position in this vector with the specified element
vector.set(index,(char) (vector.elementat(index) - ('a' - 'a')));
} else if (vector.elementat(index - 1) == ' '&& vector.elementat(index) == ' ') {
//处理有多个空格的可能
vector.remove(index);
index--;
} else if (vector.elementat(index - 1) == ' '
&& (vector.elementat(index) >= 'a' && vector
.elementat(index) <= 'z')) {
//判断是空格后边的字符
vector.set(index,
(char) (vector.elementat(index) - ('a' - 'a')));
} else if ((vector.elementat(index) >= 'a' && vector
.elementat(index) <= 'z')
&& (vector.elementat(index - 1) >= '0' && vector
.elementat(index - 1) <= '9')) {
vector.add(index, '_');
index++;
} else if ((vector.elementat(index - 1) >= 'a' && vector
.elementat(index - 1) <= 'z')
&& (vector.elementat(index) >= '0' && vector
.elementat(index) <= '9')) {
//判断的是数字
vector.add(index, '_');
index++;
}
index++;
}
for (int i = 0; i < vector.size(); i++) {
system.out.print(vector.elementat(i));
}
system.out.println();
} catch (arrayindexoutofboundsexception e) {
}
}
}