比较java中的两个int字符串

时间:2011-06-02 10:18:16

标签: java string compare

我有两个包含数字的字符串,我想看看第二个字符串是否包含与第一个字符串相同的数字,无论它们是否有序。如果它有任何重复的数字而不是报告错误。除了使用.charAt()之外,在java中是否存在因为它在10之后不适用于数字?

String one = "1 2 3 4 5 "; 
String two = " 3 2 1 4 5 ";
String three = "3 2 1 4 4 "; 

8 个答案:

答案 0 :(得分:7)

看起来像家庭作业。所以这些步骤可以遵循:

  • Trim两个字符串
  • Convert使用空格分隔符将这两个字符串转换为ArrayList
  • Sort两个数组都是数字
  • Compare两个数组

答案 1 :(得分:4)

您可以使用Scanner.nextInt()从字符串中读取数字,将其添加到Set,然后查看set1.equals(set2)是否为真。

答案 2 :(得分:2)

我不会对原始字符串进行比较。相反,首先在每个结果上使用String.split()Integer.parseInt()将每个String转换为List<Integer>。然后sort()列表按升序排列,然后比较它们变得非常容易。

答案 3 :(得分:2)

试试这样。

String one = "1 2 3  4 5 ";
String two = " 3 2 1 4 5 ";
Set<String> a = new HashSet<String> (Arrays.asList(one.trim().replaceAll("\\s*"," ").split(" ")));
Set<String> b = new HashSet<String> (Arrays.asList(two.trim().replaceAll("\\s*"," ").split(" ")));
boolean ret = (a.size() == b.size()) && a.containsAll(b);

答案 4 :(得分:0)

您可以根据空格对字符串进行标记/拆分,然后循环生成数字本身的标记。

答案 5 :(得分:0)

您在空格上拆分字符串(使用String.splitStringTokenizer),然后将每个标记转换为数字。将字符串1中的所有数字放入HashSet。对字符串2执行相同操作。现在,您所要做的就是检查第一个HashSet中的每个条目是否也出现在第二个条目中。

答案 6 :(得分:0)

我首先将数字解析为整数,将它们放到集合中并进行比较:

  import java.util.SortedSet;
import java.util.StringTokenizer;
import java.util.TreeSet;


public class StringsCompare {

    private static String one = "1 2 3 4 5 6"; 
    private static String two = " 3 2 1 5 6 4 ";

    public static void main(String[] args) {
        StringsCompare sc = new StringsCompare();

        System.out.println(sc.compare(one, two));
    }

    private boolean compare(String one, String two) {

        SortedSet<Integer> setOne = getSet(one);    
        SortedSet<Integer> setTwo = getSet(two);

        return setOne.equals(setTwo);
    }

    private SortedSet<Integer> getSet(String str) {
        SortedSet<Integer> result = new TreeSet<Integer>();

        StringTokenizer st = new StringTokenizer(str, " ");

        while (st.hasMoreTokens()) {
            result.add(Integer.valueOf(st.nextToken()));
        }

        return result;
    }
}

答案 7 :(得分:-1)

尝试解析int。

中的字符串
Integer.parseInt(One).intValue() == Integer.parseInt(two).intValue()

我不确定你要做什么,但我的猜测是你最好使用数组。