有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在Java中解析字符串?

这是我的代码:

   import java.io.*;
   import java.util.*;

   public class Testing {
       public static void main(String[] args) {
           Scanner in = new Scanner(System.in );
           PrintStream out = System.out;

           String input = in .next();
           String output = "";
           char c = 0;
           int count = 0;
           int countInput = input.length();

           for (int i = 0; i < countInput; i++) {
               if (i == 0) {
                   c = input.charAt(i);
                   count++;
               } else {
                   if (c == input.charAt(i)) {
                       count++;
                   } else {
                       output = output + count + "" + c;
                       count = 1;
                       c = input.charAt(i);
                       out.println(output);
                   }
               }
           }
           output = output + count + "" + c;
           out.println(output);
       }
   }

本程序的工作原理如下:

输入:

java Testing AAAAAnnnfffkk

输出:

5A3n3f2k

我需要以某种方式解决这个问题:

String input = in.next();

我认为args必须在某个地方使用,但我不确定在哪里


共 (4) 个答案

  1. # 1 楼答案

    您的程序逻辑正常。但是基于您想要做的事情,您将不需要Scanner

    如果希望输入来自arguments数组:main(String[] args),则需要将其分配给输入:

    String input = args[0];
    

    但是,如果你在没有给出参数的情况下运行程序呢?它将引发异常,因此您需要进行某种错误处理:

    String input = "";
    if (args.length > 0) {
        input = args[0];
    }
    
  2. # 3 楼答案

    我们可以一步一步地完成

    首先,编写一个程序来获取输入,然后一次打印一个字符

    原因是您需要读取输入,并一次处理一个字符,因此第一步是让循环机制停止

    一旦循环正确,我们就可以担心重复字母计数的逻辑

    完成后编辑你的帖子,我会在这里发布更多

  3. # 4 楼答案

    在代码示例中:

    //importing lib
    import java.util.Scanner;
    
    //file name "Hello.java"
    public class Hello {
        //Main method
        public static void main(String[] args) {
            //input reader
            Scanner input = new Scanner(System.in);
            //output storage
            StringBuilder output = new StringBuilder("");
    
    
            //read a line, you can use other command in this class to parse
            output.append(input.nextLine());
            //write a line
            System.out.println(output.toString());
        }
    }
    

    编辑:

    如果您喜欢使用args,则:

    public class Hello {
        // Main method
        public static void main(String[] args) {
            // output storage
            StringBuilder output = new StringBuilder("");
            // check if there are arguments
            if (args.length > 0) {
                // use string
                output.append(args[0]);
            }
            // write a line
            System.out.println(output.toString());
        }
    }