这是我的代码:
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 :(得分: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());
}
}