我想比较两个用户定义的字符串,并输出两个字符串之间共享的字符数,而不用使用数组。然后我需要输出这些字符中的每一个。我用扫描仪理解用户输入的部分,但后来我就不知所措了。
例如,string1中的"hamper"和string2中的"was"将返回:
共享字符数=5
共享字符
以下是我到目前为止的情况。不过,它会在单独的一行上打印每个字符。有没有一种不用数组的方法可以像上面那样将它们全部列在一行中
public class CountMatches {
public static void main(String[] args)
{
//Declare both Strings.
String word1;
String word2;
int count = 0;
//Call for User Input.
Scanner inputDevice = new Scanner(System.in);
System.out.print("Input String 1 >> ");
word1 = inputDevice.next();
System.out.print("Input String 2 >> ");
word2 = inputDevice.next();
inputDevice.close();
//Determine lengths and set label accordingly.
String BigWord;
String SmallWord;
if (word1.length() > word2.length())
{
BigWord = word1;
SmallWord = word2;
}
else
{
BigWord = word2;
SmallWord = word1;
}
//Count and Display the like characters.
for (int i = 0; i < SmallWord.length(); i++)
{
if (BigWord.contains(String.valueOf(SmallWord.charAt(i))))
{
System.out.println("both words contain the letter " + SmallWord.charAt(i));
count++;
}
}
//Display the count of like characters.
System.out.print("Number of like characters >> " + count);
}
}
一个非常好的方法是按字母顺序对字符串进行排序。
sortedWord1 = new String(Arrays.sort(word1.toCharArray()));
sortedWord2 = new String(Arrays.sort(word2.toCharArray()));
这样做的目的是将单词转换为字符数组,按字母顺序排序,然后再次将它们转换为字符串。
下一步就是从头开始迭代并打印出所有常用字符。这会更容易,因为它们已经分类了。
int index1 = 0;
int index2 = 0;
while((index1 < sortedWord1.length()) && (index2 < sortedWord2.length()) {
if(sortedWord1.charAt(index1) == sortedWord2.charAt(index2)) {
System.out.print(sortedWord1.charAt(index1) + " ");
index1++; index2++;
}
else if(sortedWord1.charAt(index1)> sortedWord2.charAt(index2)) {
index2++;
}
else {
index1++;
}
}
我还没有检查语法错误,但应该不错。
假设你有word1
和word2
:
String biggerWord;
String smallerWord;
if (word1.length() > word2.length()) {
biggerWord = word1;
smallerWord = word2;
} else {
biggerWord = word2;
smallerWord = word1;
}
for (int i = 0; i < smallerWord.length(); i++) {
if (biggerWord.contains(String.valueOf(smallerWord.charAt(i)))) {
counter++;
}
}
这会找出哪个词更大。然后对于smallerWord
的长度,一次迭代一个字符,查看biggerWord
是否包含该字符。如果是,则增加计数器<代码>计数器应该在循环结束时具有公共字符数。
这是手写的,所以要注意语法和小的逻辑错误。或者我误解了你的任务。不过应该很接近。
问题内容: 如果我在mysql中有两个字符串: 有没有办法使用MYSQL获得这两个字符串之间的相似性百分比?例如,这里有3个单词是相似的,因此相似度应为: count(@a和@b之间的相似单词)/(count(@a)+ count(@b)-count(intersection)) 和结果是3 /(4 + 4-3)= 0.6 高度赞赏任何想法! 问题答案: 您可以使用此功能(从http://www.
如何获得一个字符串与Python中的另一个字符串相似的概率? 我想得到一个十进制值,如0.9(意味着90%)等。最好使用标准Python和库。 e、 g。
我的问题是这样问的:编写一个比较两个输入字符串的程序。输出每个字符串位置匹配的字符数。输出应根据字符数使用正确的动词(匹配与匹配)。 例如:如果输入是:粉碎崩溃 输出为:4个字符匹配 这就是我到目前为止所拥有的: 导入java.util.Scanner; 我知道这看起来并不多,但我已经尝试了很多其他方法,但我显然缺少一些可以让这更容易做到的东西。我想数一下柜台里类似的字母……但我不知道该怎么办。
问题内容: 如何获得字符串与Python中的另一个字符串相似的概率? 我想要一个像0.9(表示90%)之类的十进制值。最好使用标准Python和库。 例如 问题答案: 有一个内置的。 使用它:
问题内容: 假设我们有类似的东西: 我想将“ someText”替换为其他内容。考虑到我不知道someText可能是什么(任何字符串)并且我所知道的是它将被&firstString =和&endString =包围的事实,最佳方法是什么? 编辑:对不起,看起来这还不够清楚。我不知道“ someText”可能是什么,我仅有的信息是它将位于&firstString =和&endString =之间 我
我在学校开始Java,我被要求做这个练习,但我卡住了。我有两个数字,我必须找到这两个数字之间的字符差异,为了使它在字符数量上相等,我必须添加许多零作为缺失的字符。所以例如,如果我有10和100,输出将是010和100。我想得到支持,了解如何在这两个数字的string.length,我可以检测到缺少的字符并添加0。