令牌-字符串Java
我成功地完成了以下任务,但是代码效率很低,如果有人能给我展示一种更有效的方法,我将不胜感激,也许是使用子字符串。任务:令牌-字符串Java,java,string,token,Java,String,Token,我成功地完成了以下任务,但是代码效率很低,如果有人能给我展示一种更有效的方法,我将不胜感激,也许是使用子字符串。任务: /** * Separates a given string into tokens, which are the "words" that are * separated by one or more occurrences of the given separator character. * Returns the tokens as an array of Str
/**
* Separates a given string into tokens, which are the "words" that are
* separated by one or more occurrences of the given separator character.
* Returns the tokens as an array of String values.
*/
public static String[] tokenize (String str, char separator) {
// Removes all the occurrences of the separator at the beginning and end of str
String source = trim(str, separator);
String[] tokens = new String[charRunCount (source,separator)+1];
String tmp = ""; // a string in order to take a word, then run over this string
int j = 0;
int i = 0;
while (i < tokens.length) {
if ( source.charAt (j) != separator ) {
do {
tmp += source.charAt (j);
if ( j >= source.length () - 1 ) {
break;
}
else { // so that we math the source length
j++;
}
} while (source.charAt (j) != separator);
}
if ( source.charAt (j) == separator ) {
j++;
while (source.charAt (j) == separator) {
j++;
}
}
tokens[i] = tmp;// taking the token into place
tmp = ""; //resetting the token so we can begin anew
i++;
}
return tokens;
}
/**
*将给定字符串分隔为标记,这些标记是
*由给定分隔符的一个或多个匹配项分隔。
*以字符串值数组的形式返回标记。
*/
公共静态字符串[]标记化(字符串str,字符分隔符){
//删除字符串开头和结尾处出现的所有分隔符
字符串源=修剪(str,分隔符);
String[]令牌=新字符串[charRunCount(源,分隔符)+1];
String tmp=“”;//一个字符串,以获取一个单词,然后在该字符串上运行
int j=0;
int i=0;
while(i=source.length()-1){
打破
}
else{//这样我们就可以计算出源的长度
j++;
}
}while(source.charAt(j)!=分隔符);
}
if(source.charAt(j)=分隔符){
j++;
while(source.charAt(j)=分隔符){
j++;
}
}
令牌[i]=tmp;//将令牌放置到位
tmp=”“;//重置令牌以便我们可以重新开始
i++;
}
归还代币;
}
cahrRunCount函数:
public static int charRunCount(String str, char c){
char last = 0;
int counter = 0;
for (int i = 0; i < str.length(); i++) {
// whenever a run starts.
if (last != c && str.charAt(i) == c) {
counter++;
}
last = str.charAt(i);
}
return counter;
}
publicstaticintcharruncount(stringstr,charc){
char last=0;
int计数器=0;
对于(int i=0;i
我不能使用import或regex,谢谢 使用String.split方法
String[] tokens = str.split(separator)
for(String token:tokens){
//your code goes here
}
这里的医生
使用String.split方法
String[] tokens = str.split(separator)
for(String token:tokens){
//your code goes here
}
这里的医生
如果需要,可以使用String类的split方法(就像@Amidala Siva Kumar建议的那样),如下所示:
public static String[] tokenize (String str, char separator) {
String[] tokens = str.split(separator);
return tokens;
}
或者,如果您想使用自己的拆分来完成,您可以这样做(对代码的改进)
希望您觉得它有用。如果您愿意,可以使用String类的split方法(就像@Amidala Siva Kumar建议的那样),如下所示:
public static String[] tokenize (String str, char separator) {
String[] tokens = str.split(separator);
return tokens;
}
或者,如果您想使用自己的拆分来完成,您可以这样做(对代码的改进)
希望您觉得它有用。如果您的代码正常工作但需要改进,可能是发布它的更好地方。抱歉,我不知道这样的网站存在如果您的代码正常工作但需要改进,可能是发布它的更好地方。抱歉,我不知道这样的网站存在例如,您如何在for循环中使用它?因为分隔符是一个字符,所以您将如何在for循环中使用它?因为separator是一个charI,我不知道split函数,你怎么实现它?我不知道split函数,你怎么实现它?