好了,这就是我的问题。基本上我有一个包含4个单词的字符串,每个单词用#分隔。我需要做的是使用substring方法提取每个单词并将其打印出来。不过,我在弄清楚它的参数时遇到了麻烦。我总是能把第一个做对,但是下面几个通常都有问题。下面是代码的第一部分:
word = format.substring( 0 , format.indexOf('#') );根据我的理解,这基本上意味着从字符串的开头开始,并在#之前结束。因此,使用相同的逻辑,我尝试提取第二个单词,如下所示:
wordTwo = format.substring ( wordlength + 1 , format.indexOf('#') );
//The plus one so I don't start at the #.但在此过程中,我不断收到错误,说它不存在。我认为编译器试图读取第二个单词之前的第一个#,所以我像这样重写了它:
wordTwo = format.substring (wordlength + 1, 1 + wordLength + format.indexOf('#') );这样一来,它就完全搞砸了,要么没有打印第二个单词,要么没有停在正确的位置。如果我能在格式上得到任何帮助,我将不胜感激。因为这是一个类,所以我只能使用非常基本的方法,如indexOf,length,substring等,所以如果你可以避免使用任何复杂的东西,那就太棒了!
发布于 2012-09-15 12:57:43
如果你必须使用子字符串,那么你需要使用variant of indexOf that takes a start。这意味着您可以通过在第一个#之后开始搜索来开始查找第二个can。也就是说。
wordTwo = format.substring ( wordlength + 1 , format.indexOf('#', wordlength + 1 ) );然而,有更好的方法在分隔符上拆分字符串,如下所示。您可以使用StringTokenizer。这是为像这样拆分字符串而设计的。基本上:
StringTokenizer tok = new StringTokenizer(format, "#");
String word = tok.nextToken();
String word2 = tok.nextToken();
String word3 = tok.nextToken();或者,您可以使用String.split方法,该方法专为拆分字符串而设计。例如:
String[] parts = String.split("#");
String word = parts[0];
String word2 = parts[1];
String word3 = parts[2];发布于 2012-09-15 12:56:58
对于这种格式化字符串,您可以使用split()。
例如,如果你有这样的字符串,
String text = "Word1#Word2#Word3#Word4";您可以使用分隔符作为,
String delimiter = "#";然后创建字符串数组,如下所示
String[] temp;对于拆分字符串,
temp = text.split(delimiter);你可以得到这样的词,
temp[0] = "Word1";
temp[1] = "Word2";
temp[2] = "Word3";
temp[3] = "Word4";发布于 2012-09-15 12:57:19
使用"#"作为分隔符,使用split()方法来完成此操作
String s = "hi#vivek#is#good";
String temp = new String();
String[] arr = s.split("#");
for(String x : arr){
temp = temp + x;
}或者如果你想精确的使用每个单词..。您已经在arr中拥有它了
arr[0] ---> First Word
arr[1] ---> Second Word
arr[2] ---> Third Wordhttps://stackoverflow.com/questions/12434604
复制相似问题