9 java
我在夏天练习尝试变得更好,我对以下内容有点困惑:
http://www.javabat.com/prob/p123384
给定一个字符串,返回一个新的字符串,其中第一个和最后一个字符已被交换.
frontBack("code") ? "eodc"
frontBack("a") ? "a"
frontBack("ab") ? "ba"
Run Code Online (Sandbox Code Playgroud)
public String frontBack(String str)
{
String aString = "";
if (str.length() == 0){
return "";
}
char beginning = str.charAt(0);
char end = str.charAt(str.length() - 1);
str.replace(beginning, end);
str.replace(end, beginning);
return str;
}
Run Code Online (Sandbox Code Playgroud)
字符串可以分成一组字符,可以使用字符数组.有关String对象的更多详细信息,请转至Java API并单击左下方窗格中的String.该窗格按字母顺序排序.
编辑:由于有些人更加彻底,我想我会提供更多细节.使用String的.toCharArray()方法创建一个char数组.获取第一个元素并将其存储在char中,将第一个元素与最后一个元素交换,并将存储在char中的元素放入数组的最后一个元素中,然后说:
String temp = new String(charArray);
Run Code Online (Sandbox Code Playgroud)
并返回.这假设charArray是你的字符数组.
String.replace我建议使用该String.substring方法来获取排除第一个和最后一个字母的字符,然后连接beginning和end字符,而不是使用该方法.
此外,该String.replace方法将替换所有出现的指定字符,并返回String具有所述替换的新内容.由于上面的代码中没有获取返回,因此String.replace这里的调用确实没有太大作用.
这是因为String在Java中是不可变的,因此,该replace方法不能对原始进行任何更改String,str在这种情况下这是变量.
另外String,对于长度为1的s ,这种方法不能很好地工作.使用上面的方法,使用长度为1 String.substring的源调用String会导致a StringIndexOutOfBoundsException,因此也需要处理作为一个特例,如果采取上述方法.
坦率地说,这个方法是在indyK1ng的答案中提出的,其中char[]从String初始和结束字符的简单交换中获得,然后String通过修改char[]开始听起来更加愉快.