【问题标题】:Sequences in JAVA [closed]JAVA中的序列[关闭]
【发布时间】:2014-12-22 21:39:21
【问题描述】:

我一直在尝试生成此输出:

aaa aaa aab aOa baa aaa aab c

给定这个顺序:

aaaab aOa baaab c

我对 JAVA 真的很陌生,我无法形成其他序列,只是

啊啊啊啊啊

我已经尝试了一个月,所以我在这里问,有人可以帮助我吗?

这是我的代码:

public void generateSequence(String text, int n)
{
        text ="aaaab aOa baaab c";
        n=3; //i.e

        String[] words = text.split(" ");
        StringBuilder newGram = new StringBuilder();
        int p1 = 0;
        int p2 = n;
        String seq = "";
        int seqLength = seq.length();

        while (p1 < p2 && p2 <= seqLength) {
            newGram = newGram.append(seq.substring(p1, p2) + " ");
            p1++;
            p2++;

            if (p2 == seqLength) {
                System.out.println("End of 1st element");
                //Skip to the next elements in array and form sequences....
            }
        }
        System.out.println(newGram);
    }

【问题讨论】:

  • 您需要大量解释输入应该如何生成输出。您将什么传递给生成此输出的函数?为什么将seqLength 设置为 0 且仅设置为 0?为什么你对index 做同样的事情?您还在空字符串seq 上调用substring
  • 在每个空格字符上拆分您的输入。对于每个单词,如果 (word.length

标签: java string sequence


【解决方案1】:

这对我有用。

public static void main(final String[] args) {
    final String input = "aaaab aOa baaab c";
    final String[] sections = input.split(" ");
    final int length = 3;

    final List<String> list = new ArrayList<>();
    for (final String section : sections) {
        for (int i = 0; i < section.length(); i++) {
            if (section.length() < length) {
                list.add(section);
                continue;
            }
            final int end = i + length;
            if (end > section.length()) {
                break;
            }
            final String result = section.substring(i, end);
            list.add(result);
        }
    }
    list.stream().forEach(s -> System.out.println(s));
}

【讨论】:

  • 非常感谢 Zymus!!!救了我的命:D
【解决方案2】:

好的,用户现在输入一些文本 n 是从文本生成的子序列的数量,因为您可能知道文本是单词,我将它们保存到单词数组中。

现在如果你说 n = 3 的飞行员

结果数组将是 pil ilo lot

对于 n = 2

结果数组将是 pi il lo ot

等等

例如文本 = Java Rocks!

对于 n = 3

Jav ava Rock cks!

我想根据一些文本作为输入生成 n-gram,n 用于生成子序列,你能放一些代码吗?非常感谢。

【讨论】:

  • 使用“编辑”链接将此信息放在您的问题中,不要使用“答案”空间(StackOverflow 不是论坛,它是一个问答网站)
  • 好吧,对不起,我真的很新,我说过我会检查如何使用这个网站:D
猜你喜欢
  • 1970-01-01
  • 2010-09-07
  • 2020-04-27
  • 2018-01-27
  • 2012-09-22
  • 2019-04-13
  • 1970-01-01
  • 2012-12-27
  • 1970-01-01
相关资源
最近更新 更多