Java 字符串交换字符
我有一根绳子Java 字符串交换字符,java,string,character,Java,String,Character,我有一根绳子 String word = "Football"; 我需要将字符串的第一个字符放在字符串的最末尾。这是我的解决办法 public class charToString{ public static void main(String[] args){ String testString = "Football"; char[] stringToCharArray = testString.toCharArray(); for
String word = "Football";
我需要将字符串的第一个字符放在字符串的最末尾。这是我的解决办法
public class charToString{
public static void main(String[] args){
String testString = "Football";
char[] stringToCharArray = testString.toCharArray();
for(int i=0;i<(stringToCharArray.length-1);i++){
char temp = stringToCharArray[i];
stringToCharArray[i]= stringToCharArray[i+1];
stringToCharArray[i+1] = temp;
}//end of for
String resulT = new String(stringToCharArray); //result with desired output
System.out.println(resulT);
}// end of main
}
公共类图表绘制{
公共静态void main(字符串[]args){
String testString=“Football”;
char[]stringtocharray=testString.tocharray();
对于(int i=0;i您使用子字符串的解决方案很好,但这里有一个使用正则表达式的替代解决方案:
String word = "Football";
String result = word.replaceAll("^(.)(.*)$", "$2$1");
System.out.println(result);
可以使用子字符串:
testString.substring(1) + testString.substring(0, 1)
为什么不
word = word.substring(1, word.length()) + word.charAt(0);
编辑:
或者只需使用不带长度的子字符串
word = word.substring(1) + word.charAt(0);
比子字符串和连接更有效的解决方案是使用StringBuilder
:
String result =
new StringBuilder(word.length())
.append(word, 1, word.length())
.append(word, 0, 1) // or .append(word.charAt(0))
.toString();
这简单地避免了从word
创建子字符串,这可能会更简单。String str2=testString.substring(1)+testString.substring(0,1)
它为我返回ootballF
。@NicholasK:我认为你犯了一个错误:上面应该可以工作(用jshell
测试)。