我有一个像
这样的字符串这是一个非常好的句子
我将其分成单独的单词并存储在String[]
中:
String[] words = s.split(" ");
如何对单词总数采取特定百分比(比如说6个单词中的2个),并用其他内容替换这2个单词。到目前为止我的代码:
//Indexes in total
int maxIndex = words.length;
//Percentage of total indexes
double percentageOfIndexes = 0.20;
//Round the number of indexes
int NumOfIndexes = (int) Math.ceil( maxIndex * (percentageOfIndexes / 100.0));
//Get a random number from rounded indexes
int generatedIndex = random.nextInt(NumOfIndexes);`
答案 0 :(得分:0)
首先,计算要替换的单词数:
int totalWordsCount = words.length;
double percentageOfWords = 0.20;
int wordsToReplaceCount = (int) Math.ceil( totalWordsCount * percentageOfWords );
然后,知道要替换多少个单词,获取那么多随机索引,然后只在这些索引处交换单词:
for (int i=0; i<wordsToReplaceCount; i++) {
int index = random.nextInt(totalWordsCount);
//and replace
words[index] = "Other"; // <--- insert new words
}
注意:请记住,单词数越少,您的百分比与要替换的实际单词数之间的差异就越大,例如。 6个单词中的20%是1.2个单词,在Math.ceil()之后变为2,而2个单词从6变为33.33%。