【问题标题】:swapping two letters in an unknown string in java在java中交换未知字符串中的两个字母
【发布时间】:2016-11-20 19:33:28
【问题描述】:

我正在编写一个必须打乱单词的程序。首先,我使用 .reverse 反向读入单词。然后我把字符串变成了一个charArray。我想创建一个for循环来确定第一个字母是否是“A”,如果是,那么我必须看看下一个字母是否不是“A”。如果不是,那么我想交换这两个字母。如果两个字母中的任何一个具有;准备好被交换,则它们不能再次交换。 一些例子是 输入:“TAN” 输出:“ATN” 输入:“ALACTRIC” 输出:“AALCTRIC” 输入:“叉子” 输出:“叉子”

到目前为止,这是我的代码:我不知道要在 for 循环中放入什么。谢谢!

import java.util.Scanner;

public class scrambleWordRetry {
    public static void main(String[] args)
      {
      }
    public static String scramble( Random random, String inputString)
    {
        Scanner scan = new Scanner(System.in);
        System.out.println("Please enter a word to scramble.");
        inputString = scan.nextLine();

        char a[] = inputString.toCharArray();

         for( int i=0 ; i<a.length-1 ; i++ )
            {

            }
        return inputString;     
    }
}

【问题讨论】:

  • 您的代码目前什么都不做,因为您没有在 main 方法中调用 scramble()
  • 您所询问的很多内容都是很好的伪代码,可以满足您的需求,但您还没有尝试自己实际实现所有这些。还有一个注意事项:为什么在立即为其赋值时将 inputString 作为参数。我要么将其作为参数删除,要么在方法外部读取字符串(我更喜欢这个,因为这允许您的方法适用于任何字符串,而不仅仅是通过扫描仪读取的字符串)
  • 家庭作业项目?

标签: java string swap


【解决方案1】:

希望这段代码对你有用

    Scanner x = new Scanner(System.in);
    String str = x.next();
    System.out.println("Before Swapping" + str);
    str = scramble(str);
    System.out.println("After Swapping " + str);
}

public static String scramble(String inputString) {
    char s[] = inputString.toCharArray();
    for (int i = 1; i < s.length; i++) {

        if (s[i] == 'A' || s[i] == 'a') {
            char temp = s[i - 1];
            s[i - 1] = s[i];
            s[i] = temp;

        }
    }
    return new String(s);
}

那么如果你输入'ALACTRIC',输出将是'AALCTRIC', '谭 = aTn', '叉=叉'。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-16
    • 2023-03-23
    • 2012-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多