2012-07-12 115 views
1

這是我的代碼:如何解析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測試AAAAAnnnfffkk

輸出:

5A3n3f2k

我需要以某種方式解決這個問題:

String input = in.next(); 

我認爲args在某處被使用,我不知道在哪裏,但。

+0

你有一個靜態的主要方法嗎?閱讀一下,你會看到如何將參數傳遞給你的應用程序。 – Marvo 2012-07-12 00:56:10

+0

'in'是什麼?這可以幫助我們幫助你。 – 2012-07-12 00:59:37

+0

這裏是其餘的代碼,它沒有讓我發佈它... – Shawn 2012-07-12 01:05:30

回答

1

我們可以一次完成這一步。

首先,編寫一個程序來獲取輸入,然後一次打印一個字符。

原因是你將需要閱讀輸入,並一次處理一個字符,所以第一步是要取消循環機制。

一旦你循環正確,我們可以擔心計數重複字母的邏輯。

編輯您的文章,完成後我會發布更多。

+0

import java.io. *; import java.util。*; 公共類測試 { \t公共靜態無效的主要(字串[] args) \t { \t \t在新=掃描儀(System.in)掃描儀; \t \t PrintStream out = System.out; – Shawn 2012-07-12 01:05:58

+0

將您的代碼發佈到您的原始發佈中,以便我們可以閱讀它。當然,它需要編譯和運行。 – 2012-07-12 01:15:03

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

我更新了我的代碼 – Shawn 2012-07-12 01:13:16

3

你的程序邏輯是確定的。但根據你想要做的事情,你不需要類Scanner

如果你希望你的輸入來自參數數組:main(String[] args),那麼你需要指定,爲您的輸入:

String input = args[0]; 

但是,嘿,如果你跑不給參數的程序?它會拋出一個異常,所以你需要有一些錯誤處理:

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

oh thankkkk youu ...「args [0]」正是我想要的 – Shawn 2012-07-12 01:15:28

+0

沒問題,不客氣。 – Ruel 2012-07-12 01:17:10