如何解析Java中的String?

时间:2012-07-12 00:53:52

标签: java string

这是我的代码:

   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测试AAAAAnnnfffkk

输出:

  

5A3n3f2k

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

String input = in.next();

我认为args必须在某个地方使用,我不知道在哪里。

4 个答案:

答案 0 :(得分:3)

你的程序逻辑没问题。但根据您的要求,您将不需要Scanner课程。

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

String input = args[0];

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

String input = "";
if (args.length > 0) {
    input = args[0];
}

答案 1 :(得分:1)

我们可以一步一步地完成这一步。

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

原因是你需要读取输入,并一次处理一个字符,所以第一步是让循环机制失效。

一旦你正确循环,我们就会担心计算重复字母的逻辑。

在完成后编辑您的帖子,我会在此处发布更多信息。

答案 2 :(得分:0)

你肯定需要一个主要方法。尝试阅读有关主要内容的链接。希望能帮助到你。 http://www.dreamincode.net/forums/topic/38921-a-closer-look-at-the-main-method/

答案 3 :(得分:0)

在代码示例中:

//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());
    }
}