用Java编程找到两个字符串中共有的字符

这道题的算法思想是把字符串1中的每个字符与字符串2中的每个字符进行比较,遇到共同拥有的字符,放入另一个数组中,最后顺序输出即可

但是这道题的难点在于怎么排除重复的字符

public class bothChar {
    public static String bothChar(String str1,String str2){
        StringBuffer sb = new StringBuffer();
        int n1,n2,m=0;
        //char a[]=new char[50];
       n1=str1.length();
       n2=str2.length();
        if(str1!=null){//获取字符串1中的每个字符
            for(int i=0;i<n1;i++){
                char c = str1.charAt(i);
            }
        }
        //获取字符串2中的每个字符
       if(str2!=null){//获取字符串1中的每个字符
           for(int j=0;j<n2;j++){
               char d = str2.charAt(j);
           }
       }
       //两个字符串中的字符一一进行比较
       for(int i=0;i<n1;i++){
           m=0;
           for(int j=0;j<n2;j++){
               if(str1.charAt(i)==str2.charAt(j)&&m==0){
                   sb.append(str1.charAt(i));
                   m=1;
               }
           }
       }
       return sb.toString();
    }

}

解决方法:在内循环之前设置标志位m,若m=0,说明该字符并未在字符串2中出现过,然后进行内循环,内循环中把m=1,这样就可以排除某一个字符串中出现重复字符的现象,具体代码附上,供大家参考

时间: 2024-10-12 18:36:05

用Java编程找到两个字符串中共有的字符的相关文章

Java中比较两个字符串是否相等的问题

java中判断两个字符串是否相等的问题 我最近刚学java,今天编程的时候就遇到一个棘手的问题,就是关于判断两个字符串是否相等的问题.在编程中,通常比较两个字符串是否相同的表达式是"==",但在java中不能这么写.在java中,用的是equals(); 例:A字符串和B和字符串比较: if(A.equals(B)){ } 返回true 或false. String 的equals 方法用于比较两个字符串是否相等.由于字符串是对象类型,所以不能用简单的"=="判断.

java中判断两个字符串是否相等的问题

我最近刚学java,今天编程的时候就遇到一个棘手的问题,就是关于判断两个字符串是否相等的问题.在编程中,通常比较两个字符串是否相同的表达式是"==",但在java中不能这么写.在java中,用的是equals(); 例:A字符串和B和字符串比较: if(A.equals(B)){ } 返回true 或false. String 的equals 方法用于比较两个字符串是否相等.由于字符串是对象类型,所以不能用简单的"=="判断.而使用equals比较两个对象的内容是否

Java编程思想(十二) —— 字符串(1)

字符串在编程中也是经常使用的. 1)不可变 其实查看API就会发现: public final class String extends Object implements Serializable, Comparable<String>, CharSequence final,不可变的. public class TestString { static String upcase(String s){ return s.toUpperCase(); } public static void

Java编程思想(十二) —— 字符串(2)

上篇讲到String的基本用法及StringBuilder和String的比较.继续. 给大家感受一下RednaxelaFX的厉害,他大学看的书. 嗯,这就是去硅谷的水平,所以,还是继续看书吧. 1)格式化输出 确实,说到C的printf,是不能用重载的+操作符的. printf("%d %f", x , y); %d这些为格式修饰符,%d表示整数,x插入到%d的位置,%f表示浮点数,y查到%f的位置. Java也模仿了C: public class TestString { publ

Java 中字两个字符串判断是否相等(转载)

java中判断字符串是否相等有两种方法:1.用"=="运算符,该运算符表示指向字符串的引用是否相同,比如: String a="abc";String b="abc":那么a==b将返回true.这是因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存一份,所以a和b指向的是同一个对象:再比如:String a=new String("abc"); String b=new String("abc&qu

《java编程思想》:字符串

1.String对象是不可变的,String类中每个看起来会修改String值的方法,实际上都是创建了一个新的String对象,来包含修改后的内容,所以在对String修改后,想打印新的值,可以直接打印,或者使用变量接受,直接打印原String引用是不会有变化的. 2.通过 "+" 连接String字符串,实际上是编译器自动引入了StringBuilder类,通过append()方法实现的. 3.当为一个类编写toString()方法时,如果字符串操作比较简单,可以直接使用"

Java编程思想 两个主函数

//: initialization/DynamicArray.javapackage initialization; /* Added by Eclipse.py */// Array initialization. public class DynamicArray { public static void main(String[] args) { Other.main(new String[]{ "fiddle", "de", "dum"

JAVA如何判断两个字符串是否相等

1.java中字符串的比较是==比较引用,equals 比较值 so我们经常习惯性的写上if(str1==str2),这种写法在java中可能会带来问题 example1: String a="abc";String b="abc", 那么a==b将返回true.因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存 一份,所以a和b指向的是同一个对象: example2:String a=new String("abc"); Str

Java编程思想笔记(字符串)

1.不可变String:String对象是不变的.String类中每一个看起来会修改String值得方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串内容.而最初的String对象则丝毫未动.(对于一个方法而言,参数是为该方法提供信息的,耳边是想让该方法改变自己的.) 2.重载“+”与StringBuilder