我想在不使用拆分功能的情况下拆分字符串?

San*_*eev 2 java

我想拆分字符串而不使用拆分.任何人都可以解决我的问题我尝试但我找不到确切的逻辑.

Mat*_*chu 9

由于这似乎是一个设计为编码实践的任务,我只会指导.先生,没有代码,虽然逻辑和代码并没有那么远.

您将需要循环遍历字符串的每个字符,并确定该字符是否为分隔符(例如,逗号或分号).如果没有,请将其添加到您计划返回的数组的最后一个元素.如果是分隔符,则创建一个新的空字符串作为数组的最后一个元素,以开始将字符输入.


pol*_*nts 5

我假设这是家庭作业,所以我只会给出片段作为提示:

查找给定子字符串的所有出现的索引

indexOf下面是使用参数来fromIndex查找较大字符串中所有出现的子字符串的示例:

String text = "012ab567ab0123ab";

// finding all occurrences forward: Method #1
for (int i = text.indexOf("ab"); i != -1; i = text.indexOf("ab", i+1)) {
    System.out.println(i);
} // prints "3", "8", "14"

// finding all occurrences forward: Method #2
for (int i = -1; (i = text.indexOf("ab", i+1)) != -1; ) {
    System.out.println(i);
} // prints "3", "8", "14"
Run Code Online (Sandbox Code Playgroud)

字符串 API 链接

  • int indexOf(String, int fromIndex)
    • 返回此字符串中指定子字符串第一次出现的索引,从指定索引开始。如果不存在此类情况,则返回 -1。

相关问题


从字符串中提取给定索引处的子字符串

此代码片段substring从字符串中提取给定索引并将它们放入List<String>

String text = "0123456789abcdefghij";

List<String> parts = new ArrayList<String>();
parts.add(text.substring(0, 5));
parts.add(text.substring(3, 7));
parts.add(text.substring(9, 13));
parts.add(text.substring(18, 20));

System.out.println(parts); // prints "[01234, 3456, 9abc, ij]"

String[] partsArray = parts.toArray(new String[0]);
Run Code Online (Sandbox Code Playgroud)

一些关键想法:

  • 《Effective Java》第二版,第 25 条:优先使用列表而不是数组
    • 如果您事先不知道会有多少零件,则效果特别好

字符串 API 链接

相关问题