(java)如何在部件上拆分一个数字,然后相互比较
我想知道如何把一个数字分成几个部分,然后相互比较 例如,我有一组数字(java)如何在部件上拆分一个数字,然后相互比较,java,string,split,Java,String,Split,我想知道如何把一个数字分成几个部分,然后相互比较 例如,我有一组数字 989010 990009 991008 992992 993006 994005 995004 我想把每个数字分成两部分-->> 在那之后,我想我可以比较两个字符串,对吗 我是说 '989' != '010' true '990' != '009' true '992' != '992' false 似乎我应该使用split函数,但是我不知道如何只在两个部分而不是更多部分上进行分离
989010
990009
991008
992992
993006
994005
995004
我想把每个数字分成两部分-->>
在那之后,我想我可以比较两个字符串,对吗
我是说
'989' != '010' true
'990' != '009' true
'992' != '992' false
似乎我应该使用split函数,但是我不知道如何只在两个部分而不是更多部分上进行分离
提前谢谢 有几种方法可以做到这一点
String str = "989010";
System.out.println(str.substring(0, 3).equals(str.substring(3,6)));
String.substring
将为您提供两个字符串,或者您可以对数字进行除法
int number = 123456;
int firstPart = number / 1000;
int secondPart = number - firstPart * 1000;
编辑很抱歉,我赶时间。
为了弥补这一点,我将再次证明,任何值得解决的问题都可以通过
regex
语言(通常令人困惑)来解决:
final String[] strings = new String[]{"123123", "123456"};
final Pattern pattern = Pattern.compile("([\\d]{3})\\1");
for (final String string : strings) {
final Matcher matcher = pattern.matcher(string);
if (matcher.matches()) {
System.out.println(string + " matches.");
}
}
输出:
run:
123123 matches.
BUILD SUCCESSFUL (total time: 0 seconds)
甚至需要0秒
,哈。看看这个
Long number = 989010L;
String text = number.toString();
String firstPart = text.substring(0,3);
String secondPart = text.substring(3);
Long firstNumber = Long.parseLong(firstPart);
Long secondNumber = Long.parseLong(secondPart);
System.out.println(firstNumber == secondNumber);
public static void main(String[] args) {
String[] values = { "989010", "990009", "991008", "992992", "993006", "994005", "995004" };
for(String value : values) {
String firstPart = value.substring(0, 3);
String secondPart = value.substring(3);
if(firstPart.equals(secondPart)) {
System.out.println(firstPart + " equals " + secondPart);
}
}
}
编辑:对,我比较了错误的子字符串,很抱歉。在Java中比较字符串时,还应该使用equals()。我更新了代码以生成两个整数。可能会提供额外的比较功能 在您的情况下,一个简单的
substring()
就可以完成这项工作。为了进行比较,请看所有数字是否都有6位数字,或者可能会有所不同?@giorashc是的,他们do@Leo你能告诉我们你试过什么吗?不,我不能。我在编写程序的另一部分时遇到了这个问题。在发布之前,请运行代码并查看输出。这只会像这样工作:intsecondpart=number-firstPart*1000代码>123456/1000==123
!=123456-123==123333
@MarounMaroun:没有其他人有这种方法,所以我为bmorris591==
和修复了它=代码>用于字符串
-比较引用,而不是内容本身。除非它们指向字符串池中相同的字符串,否则它们总是不相等。
public static void main(String[] args) {
String[] values = { "989010", "990009", "991008", "992992", "993006", "994005", "995004" };
for(String value : values) {
String firstPart = value.substring(0, 3);
String secondPart = value.substring(3);
if(firstPart.equals(secondPart)) {
System.out.println(firstPart + " equals " + secondPart);
}
}
}
`String s = "931492";
int first = Integer.parseInt(s.substring(0, s.length()/2));
int second = Integer.parseInt(s.substring(s.length()/2));
if (first != second)
{
System.out.println("Not equal");
}`