【问题标题】:How to change a char within a String, that has been inputed by a scanner如何更改扫描仪输入的字符串中的字符
【发布时间】:2015-05-27 08:26:37
【问题描述】:

如果用户输入“ABCD”,我将如何更改此字符串中的单个字符?

示例:用户输入“ABCD”。我希望它输出'T','B','G','D'。因此将 A 更改为 T,将 C 更改为 G。

我尝试使用替换方法,但发现这很乏味(并且没有真正起作用)。 我想尝试使用循环,检查用户输入的每个字母并将其更改为不同的字母。将 A 更改为 T,T 更改为 A,C 更改为 G,G 更改为 C。

public class test {

public static void main(String args[]){

Scanner input = new Scanner(System.in);
userInput = input.nextLine();

char arrayInput[] = toCharArray();
for(int i = 0; i > arrayInput.length; i++) {

switch(arrayInput[i]){

case 'a'
case 'A': change to 'T';
break;

case 't'
case 'T': change to 'A'

etc..

}}}}

类似的东西^^。那可能是完全错误的。但真的需要帮助!在互联网上找不到任何其他帮助。提前致谢

【问题讨论】:

  • 为什么replace 方法不起作用?
  • 因为我不知道如何正确使用。也许你可以告诉我?

标签: java arrays string char


【解决方案1】:

哇!回顾我早期的 Java 时光!现在这么简单的问题哈哈。

【讨论】:

    【解决方案2】:

    你可以像这样使用for循环遍历String-

    String s="ABCD";
    for(int i=0;i<s.length;i++)
    { if(s.charAt(i)=="A") s.charAt(i)="T"; if(s.charAt(i)=="C") s.charAt(i)="G"; }

    使用 charAt() 检测字符并替换它们

    【讨论】:

      【解决方案3】:

      字符串是不可变的,因此您可以将替换的输出保存在另一个字符串中

          String old ="ABCD";
          String newString = old.replace('A', 'T').replace('C', 'G');
          System.out.println(newString);
      

      【讨论】:

        【解决方案4】:

        将输出附加到StringBuilder

        StringBuilder ouput=new StringBuilder();
        for(int i = 0; i > arrayInput.length; i++) {
         switch(arrayInput[i]){
          case 'a':
          case 'A': 
            output.append('T');
            break;
           // so on.
          }
        }
        

        【讨论】:

          猜你喜欢
          • 2011-08-23
          • 1970-01-01
          • 2014-12-29
          • 1970-01-01
          • 1970-01-01
          • 2016-06-20
          • 1970-01-01
          • 2020-08-01
          相关资源
          最近更新 更多