我的问题是如何编写一个简单的编译器,就像传真机中使用的编译器一样,它将 aaaavvvvvddddddddddd 转换为 4a5vBd。
另外,我得到“假设”,输入的任何字符串都不包含大写字母和数字,并且任何字符串将包含少于 61 个任何类型的字符,因此,我假设没有人会输入 64 continue a's in我的程序。
这是据我所知
import java.util.*;
public class Program4
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
int n;
char cn;
String word;
String numChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
System.out.println("Hello, please enter a string");
word = scan.nextln();
if(n <= 61)
{
int n = ?;
cn = numChars.charAt(n);
}
}
}
我假设我需要使用一个循环,但我不知道应该用什么来计算重复的字母,然后告诉有多少该类型的字母在一行中。现在我只寻求建议而不是代码,因为我想这样做,但是作为一个初学者,我的 Java“词汇”现在还不是很大。
任何建议/提示将不胜感激。
此致 特里普斯先生
好吧,我回来了,看来我的代码在这里只打印出 147。无论我输入什么,我总是会得到 147。我试图手动跟踪我的所有变量,但是当我这样做时,我得到了我想要的,而且我的逻辑一定有一些错误。有什么想法吗?
import java.util.*;
public class Program4
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
int n = 0;
int s = 0;
char a;
char b;
char c;
String word;
String numChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
System.out.println("Please enter a string");
word = scan.nextLine();
while (n < word.length())
{
a = word.charAt(n);
b = a;
n = n ++;
a = word.charAt(n);
if (a == b)
{
s = (s + 1) ;
}
else if (a != b);
{
c = numChars.charAt(s);
System.out.print(b + c);
s = 0;
c = 0;
break;
}
}
}
}
再次感谢你!