【发布时间】:2015-10-06 21:43:24
【问题描述】:
我正在尝试编写一个简单的程序,它接受两个用户输入:一个要拆分的字符串和一个指定一个或多个分隔符的字符串。该程序应该打印一个字符串数组,该数组由拆分的子字符串和分隔符组成。我必须实现 public static String[] split(String s, String regex)
如果要拆分的字符串是
cd#34#abef#1256
我当前的代码正确输出
[cd, 34, abef, 1256]
我需要输出的是
[cd, #, 34, abef, #, 1256]
如果要拆分的字符串有两个用户指定的分隔符怎么办
cd?34?abef#1256
我怎样才能把它拆分成这样的样子
[cd, ?, 34, ?, abef, #, 1256]
我之前研究过的问题都没有使用用户指定的字符串和分隔符。
这是我当前的代码:
import java.util.Arrays;
import java.util.Scanner;
public class StringSplit
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.print("Enter a string: ");
String str = scan.next();
System.out.print("Specify delimiter(s): ");
String del = scan.next();
String[] result = split(str, del);
System.out.print(Arrays.toString(result));
}
public static String[] split(String s, String regex)
{
String[] myString = s.split(regex);
return myString;
}
}
【问题讨论】:
-
我不认为他们是任何标准的 libray 方式来做到这一点。您将不得不实施自己的方式。
-
@kan,我调查了那个问题,这是针对不作为用户输入的字符串和分隔符的解决方案。
-
需要更多说明 - 用户可以指定多字符分隔符吗?以及用户如何在他们的规范中分隔分隔符
-
是的,提示时用户可以。他们应该能够输入“cd?34?abef#1256”,然后输入“?#”并得到
[cd, ?, 34, ?, abef, #, 1256]