gpt4 book ai didi

java - 尝试用 Java 编写一个简单的编译器(我使用的是 Notepad++ )

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:46:48 25 4
gpt4 key购买 nike

我的问题是如何编写一个简单的编译器,就像传真机中使用的编译器一样,将 aaaavvvvvdddddddddddd 之类的东西转换为 4a5vBd。

另外,我得到“假设”任何输入的字符串都不包含大写字母和数字,并且任何字符串包含的任何类型的字符都少于 61,所以我假设没有人会输入 64在我的程序中继续 a。

这是我得到的

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;

}
}
}
}

再次感谢!

最佳答案

由于您不需要代码,因此这在逻辑上是可行的。你是对的,你应该遍历每个字符的字符串。将最后一个字符存储在一个变量中并保留一个计数器变量。将当前字符与最后一个字符进行比较,如果相等则递增计数器。一旦它不等于最后一个字符,则将计数器 + 最后一个字符添加到结果字符串并重置计数器变量。每次迭代更新最后一个字符变量。

关于java - 尝试用 Java 编写一个简单的编译器(我使用的是 Notepad++ ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26003765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com