Вы получаете пользовательский ввод строки из четырех положительных целых чисел ex "0 1 1 2", чтобы увидеть, есть ли две пары в строке. Объект IntegerPairs будет иметь конструктор, который не принимает аргументов и следующие два метода:Тестирование для двух пар в заданной строке
public void setPairString(String str)
- Этот метод примет строку в качестве аргумента, а затем сохранит ее в переменной экземпляра.
public boolean hasTwoPairs()
- Это вернет true, если в строке присутствуют только две пары.
Вы можете использовать сканер на строке, а также на System.in. Он работает одинаково, но конструктор берет строку, а не System.in.
После того, как вы закончили сканирование, обязательно позвоните по номеру {your scaner variable name}.close();
Не бойтесь делать локальные переменные. Вы можете использовать их для хранения чисел, которые вы получаете из строки.
Это мой проект, и я ужасно потерян ... Не хочу, чтобы кто-то делал это для меня, конечно, но я хотел бы получить хотя бы немного больше инструкций по этому поводу. Мой код до сих пор: (не очень много на всех, и я сижу здесь озадачены в течение 3-4 часов подряд)
Мой класс:
public class IntegerPairs {
private String str;
public IntegerPairs(String pairs){
str = pairs;
}
public void setPairString(String str){
this.str = str;
}
public boolean hasTwoPairs(){
Понятия не имею, что делать для логического метода. Я предполагаю, что мне нужно сделать петлю где-то ????
Даже не попал в основной класс, потому что мне нужно сначала разобраться в этом.
EDIT
Это было больше, что я искал:
IntegerPairs общественного класса {
private String theString;
public IntegerPairs() {
}
public void setPairString(String str) {
theString = str;
}
public boolean hasTwoPairs() {
String a = theString.substring(0, 1);
String b = theString.substring(1, 2);
String c = theString.substring(2, 3);
String d = theString.substring(3, 4);
boolean isThereTwopairs = (a.equals(b) && c.equals(d)) ? true
: ((a + b).equals(c + d)) ? true : false;
return isThereTwopairs;
}
}
Тогда главный класс:
импорт java.util. *;
общественного класса Main {
public static void main(String[] args) {
IntegerPairs Str = new IntegerPairs();
Scanner keyboard = new Scanner(System.in);
System.out.print("Please enter 4 numbers:");
String pairIn = keyboard.nextLine();
keyboard.close();
Str.setPairString(pairIn);
boolean isThereTwoPairs = Str.hasTwoPairs();
String whatToPrint = (isThereTwoPairs == true) ? "There Are Two Pairs"
: "There Are Not Two Pairs";
System.out.print(whatToPrint);
}
}
Взял меня некоторое время, но, наконец, получил его. Мой следующий вопрос: я запускаю тест Junit, но он говорит мне, что «у недавно созданного объекта IntegerPairs не должно быть двух пар», ip.hasTwoPairs());
Не совсем уверен, что это значит, потому что у моего конструктора нет заданий.
Две пары, как в двух двойных числах, так например. «1 1 2 2» или «3 3 4 4» для проверки требуется строка из 4 символов (с пробелами) из 4 положительных целых чисел и посмотреть, есть ли две пары в пределах этих 4 целых чисел. Итак, если есть две пары (все 4 числа), она вернет true, и если только одна пара будет по-прежнему ложной. – JR7676
Итак, если счетчик не равен двум, логический метод должен возвращать значение false. Как насчет принятия моего ответа, если вы считаете его достойным. – rert588