продолжаю выкладывать задачи для универа. структура все та же: первый класс содержит в себе первую задачу и main, а в нем вызовы всех остальных классов, в каждом классе отдельная задача.
последняя задача на ArrayList некорректно работает при попытке ввести НЕ цифру в значение температуры. ищу решение.
import java.util.Scanner;
public class S1 {
private String string1;
private String string2;
public S1(String s1, String s2)
{
string1 = s1;
string2 = s2;
}
public String add()
{
String greeting;
greeting = string1.substring(1) + string2.substring(1);
return greeting;
}
public static void main(String[] args) {
S1 s = new S1("Hello", "World");
System.out.println (s.add()+"\n");
S2 s2 = new S2();
System.out.println (s2.part()+"\n");
S3 s3 = new S3();
System.out.println (s3.transfer()+"\n");
S4 s4 = new S4();
System.out.println (s4.dbl()+"\n");
S5 s5 = new S5();
s5.noRegular();
S6 s6 = new S6();
s6.delete();
S7 c2 = new S7();
c2.count();
S8 c3 = new S8();
c3.unstr();
//////////////////////////////////////////////////////
System.out.println ("Введите номер месяца"+"\n");
Scanner in = new Scanner(System.in);
int month = in.nextInt();
S9 c4 = new S9(month);
c4.setList();
}
}
/*
* 2. Задана строка с нечетным количеством символов. Создайте строку, состоящую из
* 3-х символов, например: “Candy” -> “and”, “solving” -> “lvi”.
*/
public class S2 {
private String string = "Sublimation";
public String part ()
{
String greeting;
greeting = string.substring(((string.length())-3)/2, (string.length())-4);
return greeting;
}
}
последняя задача на ArrayList некорректно работает при попытке ввести НЕ цифру в значение температуры. ищу решение.
import java.util.Scanner;
public class S1 {
private String string1;
private String string2;
public S1(String s1, String s2)
{
string1 = s1;
string2 = s2;
}
public String add()
{
String greeting;
greeting = string1.substring(1) + string2.substring(1);
return greeting;
}
public static void main(String[] args) {
S1 s = new S1("Hello", "World");
System.out.println (s.add()+"\n");
S2 s2 = new S2();
System.out.println (s2.part()+"\n");
S3 s3 = new S3();
System.out.println (s3.transfer()+"\n");
S4 s4 = new S4();
System.out.println (s4.dbl()+"\n");
S5 s5 = new S5();
s5.noRegular();
S6 s6 = new S6();
s6.delete();
S7 c2 = new S7();
c2.count();
S8 c3 = new S8();
c3.unstr();
//////////////////////////////////////////////////////
System.out.println ("Введите номер месяца"+"\n");
Scanner in = new Scanner(System.in);
int month = in.nextInt();
S9 c4 = new S9(month);
c4.setList();
}
}
/*
* 2. Задана строка с нечетным количеством символов. Создайте строку, состоящую из
* 3-х символов, например: “Candy” -> “and”, “solving” -> “lvi”.
*/
public class S2 {
private String string = "Sublimation";
public String part ()
{
String greeting;
greeting = string.substring(((string.length())-3)/2, (string.length())-4);
return greeting;
}
}
/*
* 3. Задана строка произвольного размера. Создайте из этой строки новую, в которой 2 последних символа исходной строки перенесены в начало.
*/
public class S3 {
private String string = "Sublimation";
public String transfer()
{
String greeting;
greeting = string.substring(string.length()-2) + string.substring(0, string.length()-2);
return greeting;
}
}
/*
* 4. Из заданной строки составьте новую, в которой каждый исходный символ представлен двумя, например “Candy” -> “CCaannddyy”.
*/
public class S4 {
private String string = "Sublimation";
public String dbl()
{
String greeting = "";
for (int i = 0; i < string.length(); i++)
{
greeting = greeting + string.charAt(i) + string.charAt(i);
}
return greeting;
}
}
/*
* 5. Найдите все вхождения строки "b*b" (* - любой символ) в заданной строке без использования регулярных выражений, например “bob is bab” -> 2 .
*/
public class S5 {
private String string = "bob is bab bab bab file bob";
public void noRegular()
{
int count = 0;
int begin = 0;
for (int i = 0; i < string.length(); i++)
{
if (string.charAt(i) == ' ')
{
if((string.charAt(begin) == 'b') && (string.charAt(begin+2) == 'b'))
count++;
begin = i+1;
}
}
if ((string.charAt(string.length()-1) == 'b') && (string.charAt(string.length()-3) == 'b') && (string.charAt(string.length()-4) == ' '))
count++;
System.out.println ("bob is bab bab bab file bob -> " + count + "\n");
}
}
/*
* 6. Создайте подстроку из исходной строки, где в каждом слово, содержащем символ “*” удалены соседние левый и правый символы,
* например “th*is is sum*mer” -> “ts is suer”.
*/
public class S6 {
private String string = "th*is is sum*mer";
public void delete()
{
int count;
for (int i = 0; i<string.length(); i++)
{
if (string.charAt(i) == '*')
{
count = i;
string = string.substring(0, count-1) + string.substring(count+2);
}
}
System.out.println(string + "\n");
}
}
/*
* 7. В заданной строке подсчитайте количество слов, заканчивающихся на ‘a’ или ‘s’, без учета регистра символов.
*/
public class S7 {
private String string = "thiS is summer ola";
private int countA = 0;
private int countS = 0;
public void count()
{
string = string.toLowerCase();
for (int i = 0; i<string.length(); i++)
{
if(string.charAt(i) == ' ')
{
if (string.charAt(i-1) == 'a')
countA++;
if (string.charAt(i-1) == 's')
countS++;
}
}
if (string.charAt(string.length()-1) == 'a')
countA++;
if (string.charAt(string.length()-1) == 's')
countS++;
System.out.println("a = " + countA + "\n" + "s = " + countS + "\n");
}
}
/*
* 8. Заданы две строки. Создайте новую строку, состоящую из первой строки, в которой удалены все вхождения второй строки.
*/
public class S8 {
private String string = "summer, thiS is summer ola";
private String unstring = "summer";
public void unstr()
{
System.out.println(string.replaceAll(unstring, ""));
}
}
/*
* Реализовать программу учета среднесуточной температуры на протяжении месяца.
* Ввод данных реализовать с консоли. Вначале должен быть выведен запрос названия месяца,
* затем значений температуры для каждого числа. Количество дней в месяце программа должна
* определять автоматически. Значения хранить в ArrayList. При вводе реализовать проверку
* корректности вводимых данных, если данные введены не корректно - запросить ввод повторно.
* После введения данных вывести среднемесячную температуру,
* дату когда была максимальная температура и минимальная с указанием ее значения.
*
*/
import java.util.*;
public class S9 {
private int day;
public S9 (int m)
{
switch (m) {
case 1: day = 31;
break;
case 2: day = 28;
break;
case 3: day = 31;
break;
case 4: day = 30;
break;
case 5: day = 31;
break;
case 6: day = 30;
break;
case 7: day = 31;
break;
case 8: day = 31;
break;
case 9: day = 30;
break;
case 10: day = 31;
break;
case 11: day = 30;
break;
case 12: day = 31;
break;
}
}
public void setList()
{
ArrayList<Integer> list = new ArrayList<Integer>();
Scanner in = new Scanner (System.in);
for (int i = 0; i<day; i++)
{
System.out.println("Введите температуру в цельсиях за " + (i+1) + " число" + "\n");
if(in.hasNextInt()) // возвращает истинну если с потока ввода можно считать целое число
list.add(in.nextInt()); // считывает целое число с потока ввода и сохраняем в переменную
else
{
System.out.println("Вы ввели не целое число либо не число, повторите попытку, введите число" + "\n");
continue;
}
}
int sum = 0;
for (int i = 0; i < list.size(); i++)
{
sum+=list.get(i);
}
double average = sum/list.size();
System.out.println("Среднемесячная температура: " + average + "\n");
int max = list.get(0);
int dayMax = 0;
int min = list.get(0);
int dayMin = 0;
for (int i = 1; i<list.size(); i++)
{
if (max < list.get(i))
{
max = list.get(i);
dayMax = i;
}
if (min > list.get(i))
{
min = list.get(i);
dayMin = i;
}
}
System.out.println("Наивысшая температура за месяц была " + (dayMax+1) + " числа и равнялась " + max + " градусам\n");
System.out.println("Наименьшая температура за месяц была " + (dayMin+1) + " числа и равнялась " + min + " градусам\n");
}
}
Во втором задании я бы сделал так чтоб считала любую строку, например так:
ОтветитьУдалитьpublic static void main(String[] args) {
String s = "solving";
System.out.println(s.substring((s.length())/2-1, (s.length()/2+2)) );
}
3 задание, попишу у вас если можно:
ОтветитьУдалитьpublic static void main(String[] args) {
String s = "Proizvolnayastroka";
System.out.println(s.substring(s.length()-2).concat(s.substring(0, s.length()-2)));
}
Решение проблемы с некорректным вводом температуры так и не найдено?
ОтветитьУдалить