Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找一个单词在字符串中可能出现的次数_Java - Fatal编程技术网

Java 查找一个单词在字符串中可能出现的次数

Java 查找一个单词在字符串中可能出现的次数,java,Java,我有两条线 s1 = "cAda" s2 = "AbrAcadAbRa" 需要找出第二个字符串中第一个字符串的顺序 output = 2 which is (Acad, cadA) 输入: 4 11 cAda AbrAcadAbRa 产出:2 import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; class GFG { public

我有两条线

s1 = "cAda"

s2 = "AbrAcadAbRa"
需要找出第二个字符串中第一个字符串的顺序

output = 2 which is (Acad, cadA)
输入:

4
11
cAda
AbrAcadAbRa
产出:2

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

class GFG {
public static void main (String[] args) {
    //code
      Scanner in = new Scanner(System.in);
    int output = 0;
    int ip1 = Integer.parseInt(in.nextLine().trim());
    int ip2 = Integer.parseInt(in.nextLine().trim());
    String ip3 = in.nextLine().trim();
    String ip4 = in.nextLine().trim();
    output = appearanceCount(ip1,ip2,ip3,ip4);
    System.out.println(String.valueOf(output));
}

  public static int appearanceCount(int input1,int input2,String 
  input3,String input4)
{
//Write code here
int a= permute(input3,0,input3.length()-1,input4);
return a;
}
static int count=0;
public static int permute(String str, int l, int r,String mainstr)
{

    if (l == r){
    if(mainstr.contains(str)){
         count++;

    }
    }
    else
    {
        for (int i = l; i <= r; i++)
        {
            str = swap(str,l,i);
            permute(str, l+1, r,mainstr);
            str = swap(str,l,i);
        }
    }
    return count;
}
public static String swap(String a, int i, int j)
{
    char temp;
    char[] charArray = a.toCharArray();
    temp = charArray[i] ;
    charArray[i] = charArray[j];
    charArray[j] = temp;
    return String.valueOf(charArray);
}
 }
import java.io.*;
导入java.util.*;
导入java.text.*;
导入java.math.*;
导入java.util.regex.*;
GFG类{
公共静态void main(字符串[]args){
//代码
扫描仪输入=新扫描仪(系统输入);
int输出=0;
intip1=Integer.parseInt(in.nextLine().trim());
intip2=Integer.parseInt(in.nextLine().trim());
字符串ip3=in.nextLine().trim();
字符串ip4=in.nextLine().trim();
输出=外观计数(ip1、ip2、ip3、ip4);
System.out.println(String.valueOf(output));
}
公共静态整数外观计数(整数输入1、整数输入2、字符串
输入3,字符串输入4)
{
//在这里写代码
int a=permute(input3,0,input3.length()-1,input4);
返回a;
}
静态整数计数=0;
公共静态int-permute(字符串str、int-l、int-r、String-mainstr)
{
如果(l==r){
if(主体包含(str)){
计数++;
}
}
其他的
{
对于(inti=l;i,给你:

public static boolean containsWord(String str, String word){
    for(char c : word.toCharArray()){
        if(!str.toLowerCase().contains(String.valueOf(c).toLowerCase())){
            return false;
        }
    }
    return true;
}
使用两个字符串调用上述方法,例如:

String s1 = "cAda";
s1 = s1.chars().mapToObj(c -> String.valueOf((char) c)).distinct().collect(Collectors.joining()); //Remove duplicate characters
String s2 = "AbrAcadAbRa";
int length = s1.length();
for(int i=0 ; i< s2.length() - s1.length() ; i++){
    if(containsWord(s2.substring(i, i+length), s1)){
        System.out.println(s2.substring(i, i+length));
    }
}
String s1=“cAda”;
s1=s1.chars().mapToObj(c->String.valueOf((char)c)).distinct().collect(Collectors.joining());//删除重复字符
字符串s2=“AbrAcadAbRa”;
int length=s1.length();
对于(int i=0;i

如果您想要区分大小写的比较,那么可以在
containsbrow
方法中去掉
.toLowerCase()

也可以这样做

int findSequence(final String pat, final String str) {
String modPat = pat + pat;
int count = 0;
for (int i = 0; i < pat.length(); i++) {
  String substring = modPat.substring(i, i + pat.length());
  int indexOf = str.toLowerCase().indexOf(substring.toLowerCase());
  if (indexOf != -1) {
    System.out.println(str.substring(indexOf, indexOf + pat.length()));
    count++;
  }
}
return count;
}
int findSequence(最终字符串pat,最终字符串str){
字符串modPat=pat+pat;
整数计数=0;
对于(int i=0;i
你能再解释一下你想要达到的目标吗?请给出更多的例子。添加你的代码,这样我们就可以清楚地知道你想做什么。这个问题很好!!非常感谢@halimt如果
s1
有多个相同的字母,这将不起作用。另外,我相信搜索是区分大小写的,但是ord字母顺序并不重要。我相信搜索是区分大小写的,但字母顺序并不重要。