gpt4 book ai didi

java - java中的线程安全函数来计算句子中的单词数

转载 作者:行者123 更新时间:2023-12-02 06:04:44 27 4
gpt4 key购买 nike

我接受采访并要求编写一个函数来计算句子中的单词数。该函数应该是线程安全的。下面的方法可以吗?

public static synchronized int find(String str){

int count=0;
boolean word= false;

char[] ch = str.toCharArray();
for(int i =0;i<ch.length;i++){
if(!(ch[i]==' ')){
for(int j=i;j<ch.length;j++,i++){
if(!(ch[j]==' ')){
word= true;
if(j==ch.length-1){
count++;
}
continue;
}
else{
if(word){
count++;
}
word = false;
}
}
}
else{
continue;
}
}
return count;
}

最佳答案

如果方法的所有变量/实例都是本地的,并且参数是线程安全的,则该方法是线程安全的。

这将是我的实现(没有局部变量):

public static int countWords(String str) {
return str.trim().split("\\s+").length;
}

这里唯一起作用的对象是字符串参数。在java中,String是不可变的,因此是线程安全的,所以这个实现是线程安全的。

<小时/>

注意:“局部变量”是指“保存原语或对本地创建的对象的引用的变量”。

关于java - java中的线程安全函数来计算句子中的单词数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22394795/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com