首页 > 解决方案 > Java - 如何在不使用数组的情况下显示字符串中的所有子字符串

问题描述

我有一个字符串:

1|name|lastname|email|tel \n
2|name|lastname|email|tel \n

我知道我必须使用循环来显示所有行,但问题是在我的分配中
我不能使用数组或除 String 和 System 之外的其他类。

另外我想在不使用排序方法或数组的情况下按升序对名称进行排序。

我必须使用 compareTo 方法来比较两个名称吗?

如果是这种情况,我如何使用 compareTo 方法对名称进行排序。

例如,如果 compareTo 返回 1,则表示该名称大于另一个名称。在那种情况下,我如何管理返回以在字符串中正确排序名称?

标签: javasubstring

解决方案


要像示例中那样显示字符串的所有子字符串,您可以一个一个地浏览所有字符并将它们存储在一个字符串中。每当您点击分隔符(例如 | 或 \n)时,打印最后一个字符串。

这是一个关于在 Java 中遍历字符串字符的线程:在 Java 中遍历字符串字符 的最简单/最好/最正确的方法是什么?

如果您还需要在没有数组的情况下按升序对名称进行排序,则需要多次扫描输入 - 对 N 个字符串进行排序至少需要 N*log(N) 步。如果这是一个数据结构问题,PriorityQueue 应该为您解决问题 - 插入所有子字符串,然后以排序方式将它们弹出:)


推荐阅读