java版:输入参数This is an Apple on eBay返回Siht si na Elppa no yAbe
2015-04-05 23:56
471 查看
编程题
请编写一个函数(function)。
我们工作里使用的的语言是PHP,希望阁下能以PHP作答。若有困难,亦可使用其他语言完成。(如C#、Java、C++、Python、Perl、Ruby等)
函数的要求是这样:
输入参数–一个字符串,返回一个字符串。
输入是一句英文句子,只有英文字(a-z, A-Z)、每个字之间仅以一个空格分格,前后没有空格。
返回的是要把每一个字的字母顺序倒转写,但字的顺序和字母的大小写位置则保持不変。
例:
输入参数
This is an Apple on eBay
返回
Siht si na Elppa no yAbe
(如eBay因为是第二个字母大写,倒写后保持第二个字母的大写。)
代码如下:
package getnewstr;
public class getnewstr {
public static void main(String[] args) {
String ENStr = "This is an Apple on eBay";
String ENStr2 = "Describe YourSelf in Two words";
getnewstr gns = new getnewstr();
gns.getNewStr(ENStr);
}
// 获取转换后的String
public void getNewStr(String str) {
// 把字符串用空格分割。
String[] arr = str.split(" ");
int str_length = arr.length;
int str_length_1 = str_length - 1;
for (int i = 0; i < str_length; i++) {
// 把每个单词中的字母转换位置。赋新值。
arr[i] = getNewStrWord(arr[i]);
}
String new_str = "";
// 把转换后的单词拼接成语句。
for (int i = 0; i < str_length; i++) {
if (i == str_length_1) {
new_str = new_str + arr[i];
} else {
new_str = new_str + arr[i] + " ";
}
}
// 显示入力
System.out.println("输入为:" + str);
// 显示结果
System.out.println("输出为:" + new_str);
}
// 把单词中的字母倒序。 This -> Siht
public String getNewStrWord(String str) {
int WordLength = str.length();
String[] Word_arr = new String[WordLength];
int[] flag = new int[WordLength];
for (int i = 0; i < WordLength; i++) {
Word_arr[i] = str.substring(i, i + 1);
// 如果为大写把flag置成1.
flag[i] = isAcronym(Word_arr[i]) == false ? 1:0;
}
// 把单词中的字母倒序
swap(Word_arr);
// 把倒序后的单词中的字母全部变成小写,在把对应位置下的字母变成大写
for (int i = 0; i < WordLength; i++) {
// 如果flag为1,则把对应位置下的字母转为大写,否则转成小写字母.
Word_arr[i] = (flag[i] == 1) ?
Word_arr[i].toUpperCase()
:
Word_arr[i].toLowerCase();
}
String newword_str = "";
// 把每个字母重新组合成单词
for (int i = 0; i < WordLength; i++) {
newword_str = newword_str + Word_arr[i];
}
return newword_str;
}
// 把数组里的内容倒序。
public void swap(String a[]) {
int len = a.length;
for (int i = 0; i < len / 2; i++) {
String tmp = a[i];
a[i] = a[len - 1 - i];
a[len - 1 - i] = tmp;
}
}
// 判断大小写
public boolean isAcronym(String word) {
for (int i = 0; i < word.length(); i++) {
char c = word.charAt(i);
if (!Character.isLowerCase(c)) {
return false;
}
}
return true;
}
}
请编写一个函数(function)。
我们工作里使用的的语言是PHP,希望阁下能以PHP作答。若有困难,亦可使用其他语言完成。(如C#、Java、C++、Python、Perl、Ruby等)
函数的要求是这样:
输入参数–一个字符串,返回一个字符串。
输入是一句英文句子,只有英文字(a-z, A-Z)、每个字之间仅以一个空格分格,前后没有空格。
返回的是要把每一个字的字母顺序倒转写,但字的顺序和字母的大小写位置则保持不変。
例:
输入参数
This is an Apple on eBay
返回
Siht si na Elppa no yAbe
(如eBay因为是第二个字母大写,倒写后保持第二个字母的大写。)
代码如下:
package getnewstr;
public class getnewstr {
public static void main(String[] args) {
String ENStr = "This is an Apple on eBay";
String ENStr2 = "Describe YourSelf in Two words";
getnewstr gns = new getnewstr();
gns.getNewStr(ENStr);
}
// 获取转换后的String
public void getNewStr(String str) {
// 把字符串用空格分割。
String[] arr = str.split(" ");
int str_length = arr.length;
int str_length_1 = str_length - 1;
for (int i = 0; i < str_length; i++) {
// 把每个单词中的字母转换位置。赋新值。
arr[i] = getNewStrWord(arr[i]);
}
String new_str = "";
// 把转换后的单词拼接成语句。
for (int i = 0; i < str_length; i++) {
if (i == str_length_1) {
new_str = new_str + arr[i];
} else {
new_str = new_str + arr[i] + " ";
}
}
// 显示入力
System.out.println("输入为:" + str);
// 显示结果
System.out.println("输出为:" + new_str);
}
// 把单词中的字母倒序。 This -> Siht
public String getNewStrWord(String str) {
int WordLength = str.length();
String[] Word_arr = new String[WordLength];
int[] flag = new int[WordLength];
for (int i = 0; i < WordLength; i++) {
Word_arr[i] = str.substring(i, i + 1);
// 如果为大写把flag置成1.
flag[i] = isAcronym(Word_arr[i]) == false ? 1:0;
}
// 把单词中的字母倒序
swap(Word_arr);
// 把倒序后的单词中的字母全部变成小写,在把对应位置下的字母变成大写
for (int i = 0; i < WordLength; i++) {
// 如果flag为1,则把对应位置下的字母转为大写,否则转成小写字母.
Word_arr[i] = (flag[i] == 1) ?
Word_arr[i].toUpperCase()
:
Word_arr[i].toLowerCase();
}
String newword_str = "";
// 把每个字母重新组合成单词
for (int i = 0; i < WordLength; i++) {
newword_str = newword_str + Word_arr[i];
}
return newword_str;
}
// 把数组里的内容倒序。
public void swap(String a[]) {
int len = a.length;
for (int i = 0; i < len / 2; i++) {
String tmp = a[i];
a[i] = a[len - 1 - i];
a[len - 1 - i] = tmp;
}
}
// 判断大小写
public boolean isAcronym(String word) {
for (int i = 0; i < word.length(); i++) {
char c = word.charAt(i);
if (!Character.isLowerCase(c)) {
return false;
}
}
return true;
}
}
相关文章推荐
- eclipse中设置.abc--xyz触发提示输入时,提示This compilation unit is not on the build path of java project 异常如何解决?
- Java编译错误“No enclosing instance of type AA is accessible. Must qualify the allocation with an enclosing instance of type SimpleTh
- Java编译错误“No enclosing instance of type AA is accessible. Must qualify the allocation with an enclosing instance of type SimpleT
- There is no READABLE property named 'day' in class 'java.lang.String';You have an error in your SQL
- Java编译错误“No enclosing instance of type AA is accessible. Must qualify the allocation with an enclosing instance of type SimpleTh
- there is no way to go on this way.
- Java出现No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing
- 验证参数传递引发的Java编译错误“No enclosing instance of type XXX is accessible" 及匿名内部类
- java.lang.IllegalStateException: No FacesContext is available to process this request的另一种处理方法
- Java出现No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing
- Java编译错误“No enclosing instance of type AA is accessible. Must qualify the allocation with an enclosing instance of type SimpleT
- hpux (console is on a serial device,no further output will appear on this output device)
- JAVA调用ORACLE带数组输入参数和返回游标结果集的存储过程
- Java编译错误“No enclosing instance of type AA is accessible. Must qualify the allocation with an enclosi
- Jetty7.6.X java.err.nojdk 错误,jetty8.1There is an error in invoking javac解决方法
- Java编译错误“No enclosing instance of type AA is accessible. Must qualify the allocation with an enclosing instance of type SimpleT
- Java编译错误“No enclosing instance of type AA is accessible. Must qualify the allocation with an enclosi
- Java出现No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing
- java编译错误No enclosing instance of type TestFrame is accessible. Must qualify the allocation with an enclosing instance of type TestFrame (e.g. x.new A(
- 【Java-bug】No enclosing instance of type Test is accessible. Must qualify the allocation with an encl