【发布时间】:2020-02-28 04:14:56
【问题描述】:
所以我试图接受多个输入。 这是问题:- 给定两个长度相等的字符串,你必须判断它们是否相同。
如果字符串 S1 的任何排列与字符串 S2 相等,则称两个字符串 S1 和 S2 相同。有关详细信息,请参阅示例说明。
输入: 第一行,包含一个表示否的整数“T”。的测试用例。 每个测试由一行组成,包含两个空格分隔的等长字符串 S1 和 S2。
输出:
对于每个测试用例,如果字符串 S1 的任何排列等于字符串 S2,则打印 YES,否则打印 NO。
约束:
1
1
字符串仅由小写字母组成。
import java.io.*;
import java.util.*;
public class test
{
public static void main(String args[])throws IOException
{
String parts[]=new String[10];
Scanner sc=new Scanner(System.in);
System.out.println("Enter no of inputs");
int n=sc.nextInt();
int j=n;
for(int i=0;i<j;i++)
{
System.out.println("Enter string");
String s=sc.next();
int in=s.indexOf(" ");
String s1=s.substring(0,in);
String s2=s.substring(in+1);
boolean status = true;
if (s1.length() != s2.length())
{
status = false;
}
else
{
char[] ArrayS1 = s1.toCharArray();
char[] ArrayS2 = s2.toCharArray();
Arrays.sort(ArrayS1);
Arrays.sort(ArrayS2);
status = Arrays.equals(ArrayS1, ArrayS2);
}
if (status==true)
{
System.out.println(s1 + " and " + s2 + " are anagrams");
}
else
{
System.out.println(s1 + " and " + s2 + " are not anagrams");
}
}
}
}
错误
问题
【问题讨论】:
-
错误在哪一行?请发表评论或以某种方式标记它。
-
String s=sc.next();-s永远不会包含空格,因此int in=s.indexOf(" ");是-1。试试sc.nextLine(); -
听起来像是一个答案,@Elliott
-
当您尝试
nextLine()时请注意:Scanner is skipping nextLine() after using next() or nextFoo()?
标签: java