Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何交换字符串中的字符_Java_String - Fatal编程技术网

Java 如何交换字符串中的字符

Java 如何交换字符串中的字符,java,string,Java,String,我写了一些代码来交换单词中的字符 但由于某些原因,它没有交换第一个字符,任何帮助将不胜感激 public class StringWorker{ public static void main (String[]arg$){ Scanner in = new Scanner(System.in); System.out.println("enter a word: "); String str = in.nextLine();

我写了一些代码来交换单词中的字符 但由于某些原因,它没有交换第一个字符,任何帮助将不胜感激

public class StringWorker{
    public static void main (String[]arg$){

        Scanner in = new Scanner(System.in);
        System.out.println("enter a word: ");
        String str = in.nextLine();

        char[] newCh = str.toLowerCase().toCharArray();
        int length= str.length()-1;
        char temp;

        for (int i=0; i<length; i++){

                temp = newCh[i];    
                newCh[i] = newCh[i++];
                newCh[i++] = temp;


        }
        String revamped = String.valueOf(newCh);
        System.out.println(revamped);
        System.exit(0);
    }
}
公共类StringWorker{
公共静态void main(字符串[]arg$){
扫描仪输入=新扫描仪(系统输入);
System.out.println(“输入一个单词:”);
字符串str=in.nextLine();
char[]newCh=str.toLowerCase().toCharArray();
int length=str.length()-1;
焦炭温度;
对于(int i=0;i变化:

for (int i=0; i<length; i++){                   
    temp = newCh[i];    
    newCh[i] = newCh[i++];
    newCh[i++] = temp;
for(int i=0;i变化:

for (int i=0; i<length; i++){                   
    temp = newCh[i];    
    newCh[i] = newCh[i++];
    newCh[i++] = temp;

用于(In i=0;IYE调用太频繁,你需要交换单词的每两个字符,右。样式注释:考虑java类命名约定,用大写字符来初始化类名。这意味着用StringWorker交换StrugWord。你调用的是代码> i++< /COD>。你需要交换两个。Word的右字符注释:考虑java类命名约定,用大写字符来初始化类名。这意味着用SrangWorksSwitter交换StrugWord。当它到达最后一个字符时,这不会造成错误。如果只需要第一个字符和最后一个字符,我就使用了“Schange”,而不是很宽松。与循环相比,交换不是更好的解决方案吗?
newstringbuilder(str.substring(1)).append(str.charAt(0))
@embassador-是的,我已经修改了更改。我之前只有几分钟的空闲时间,所以我忘了把它放进去。@SubOptimal-这是另一种方式,但我只是想修复现有代码以解释问题的根本原因:-)当它到达最后一个字符时,这不会导致错误。如果只需要交换第一个字符和最后一个字符,我使用的“swap”相当松散。与循环相比,以下不是更好的解决方案吗?
new StringBuilder(str.substring(1)).append(str.charAt(0))
@embassador-是的,我已经修改了更改。我之前只有几分钟的空闲时间,所以我忘了把它放进去。@SubOptimal-这是另一种方式,但我只是想修复现有代码以解释问题的根本原因:-)