首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >尝试用java编写一个简单的编译器(我使用的是notepad++)

尝试用java编写一个简单的编译器(我使用的是notepad++)
EN

Stack Overflow用户
提问于 2014-09-24 04:02:17
回答 1查看 270关注 0票数 3

我的问题是,我如何编写一个简单的编译器,就像传真机中使用的编译器一样,将类似

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

这就是我所得到的

代码语言:javascript
代码运行次数:0
运行
复制
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“词汇表”现在并不是很大。

任何建议/建议都将不胜感激。

诚心,Mr.Trips

好了,我回来了,看起来我这里的代码只想打印147。无论我输入什么,我总是会得到147。我试图手动跟踪所有的变量,但当我这样做时,我得到了我想要的东西,而且我的逻辑肯定有一些错误。有什么想法吗?

代码语言:javascript
代码运行次数:0
运行
复制
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;

            }
        }
    }
}

再次感谢您!

EN

回答 1

Stack Overflow用户

发布于 2014-09-24 04:06:35

既然你不想要代码,这在逻辑上就是怎么做的。你是对的,你应该遍历每个字符的字符串。将最后一个字符存储在一个变量中,并保留一个计数器变量。将当前字符与最后一个字符进行比较,如果相等,则递增计数器。一旦它不等于最后一个字符,则将counter + last char添加到结果字符串中,并重置计数器变量。每次迭代都会更新最后一个char变量。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26003765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档