java万级字符串查重
2022-04-09阅读(103)

问:java查询一个字符串中重复的字符
- 答:public static void main(String[] args) throws Exception {
String a = "abcdaebijkd";
String strRes = "";
for(int i=0;i<a.length();i++){
if(a.lastIndexOf(a.toCharArray()[i]) != i){
strRes = strRes + a.toCharArray()[i];
}
}
System.out.println(strRes);
}
问:java怎么查询一个字符串中重复的字符,并且计算他出现的次数。
- 答:把这个字符串按照这个字符分割,如果分出来有n段,就说明这个字符出现了n-1次
string
str="laslkav;lkjsn;skldnf;";
string
m=";";
string[]
r=str.split(m);
system.out.println(r.length-1); - 答:不明白
试试这样
str.replace("abcd","abcd|");
str.split("\\|").length
问:JAVA字符串中去重复字符串
- 答:最好用个特殊符号
如教f练f教f练f裁f判f裁f判f裁f判f运f动f员f运f动f员
这样就可以通过字符串的split的方法取出所有单个字符
然后存在 HashSet里 再读出来就好了啊 - 答:用一个数组将字符串装起来,然后对字符串从第一个字符开始和之前的字符进行匹配检索,只要有相等的,就继续向后匹配,只要有两个字符及以上匹配相等,就删除当前已匹配小字符串就行了。
- 答:最简单的办法,扫描字符串,对每个字符,删除其后续出现,这样可以保证不会有重复的字符出现,那自然也不会有重复字符串出现。
但是,从语义上说,会有问题
比如“教练教授裁判”会变成“教练授裁判”
问:Java字符串去掉重复字符
- 答:先把这些字符串用一个变量保存,然后转换成tochararray数组进行循环可以有contains进行判断是否有相同字符,用嵌套循环,随即改变数组值
- 答:通过Map集合应该可以吧:把字符串的每个字符作为Map集合的Key,放入Map集合,然后再把Key重新组合成新的字符串,有兴趣可以试一下啊,看看是否是你想要的结果。
问:求: 用 Java 正则去掉字符串中重复出现的字符!
- 答:str = str.replaceAll("(?s)(.)(?=.*\\1)", "");
-----------------------------------
(?s)(.)(?=.*\1)
(?s) 开启单行模式 DOTALL 让. 号匹配任意字符
(.) 任意字符 并捕获在第一组
(?=.*\1) 这是断言, 表示后面内容将是 任意个字符加上第一组所捕获的内容
这样子,如果这整个式子匹配到,表示,第一个捕获组内容在字符串中,至少出现两次,替换为 "" 空串.
进行 全局替换后, 整个字符串所出现的字符将不重复。
问:java 判断两个字符串有多少个字符相同
- 答:写个方法:
public char getSame(){
String s1="12345";
String s2="67821";
char[] c1 = s1.toCharArray();
int i=0;
while(i<5){
if(s2.indexOf(c1[i])!=-1){ - 答:给你个思路,把字符串转换成字符数组,数组元素逐一比对。应该有更好的办法。我们可以一同研究。
问:java判断一个字符串是否含有多个相同的字符
- 答:String s = "Replace the string with yourself.";
//根据要求,字符串有2个相同的字符,即判定为有相同字符
public boolean haveSameChar(String s) {
for (int i=0;i<s.length();i++) {
char ch = s.charAt(i);
String s1 = s.substring(i+1);//i之后的字符串
if (s1.indexOf(ch)>=0) {
return true;
}
}
return false;
} - 答:boolean a = s.contains("??");
问:java比较字符串相同,如果相同就输出相同的字符串,如果用java写,在线等???
- 答:...你真的是在问这个问题?
例:
if(“str”.equals("str")){
System.out.println("str");
} - 答:是字符串全部相同?
String a="test";
String b="Test";
if(a!=""&&a.equals(b)){
System.out.println(a);
}
if(a==""&&b==""){
System.out.println(a);
} - 答:用字符串的equals方法 eg:String str = "";
String str1 = "123";
if(str.equals(str1)){
System.out.println(str1);
} - 答:Test{
public Test(){}
public static void main(String[] args){
String s1 ="aa";
String s2 = "bb";
if s1.equals(s2)
System.out.println(s1);
}
} - 答:String a="abc";
String b="abc";
String isequals(String a,String b){
if(a!=null){
if(a.equals(b)){
return a;
}
}
return null;
} - 答:public class Test {
public static void main(String[] args) {
String a = "123";
String b = "123";
if(a.equals(b)){
System.out.println(a+"="+b);
}
}
} - 答:String a="qwe";
String b="qwe";
if(a.equals(b)){
System.out.println(a);
} - 答:代码如下:
public static void main(String [] args){
String a = "xxxxx";
String b = "xxxxx";
printSame(a,b);
}
//比较并输出想同的字符串
public static void printSame(String a ,String b){
if(a != null && a.equals(b)){
system.out.println("参数a和参数b相同,值等于"+a);
}
} - 答:Scanner scan = new Scanner(System.in);
System.out.println("请输入第一个字符");
String yn=scan.next();
System.out.println("请输入第一个字符");
String yn2=scan.next();
if(yn2.equals(yn)){
System.out.println(yn2);
}else{
System.out.println("输入的两个字符不相等");
}