package lab8; public class NewMethods { //1. Метод для нахождения длины строки. static int myStrlen(String src) { int length = 0; for (char c : src.toCharArray()) length++; return length; } //2. Метод для копирования строки src в строку dest. static void mySrtcpy(String dest, String src) { String srcBackUp = dest; dest = src; System.out.println(dest); } //3. Метод для дополнения "строки" dest строкой src. static void myStrcat(char[] dest, String src) { int indexOfEmptySocket = 0; int count = 0; for (char c : dest) { if (c != '\u0000') indexOfEmptySocket++; } for (int i = indexOfEmptySocket; i < (dest.length - (dest.length - indexOfEmptySocket - src.length())); i++) { dest[i] = src.toCharArray()[count]; count++; } count = 0; } //4. Метод для сравнения двух строк. static int myStrcmp(String s1, String s2) { char[] tempArr1 = s1.toCharArray(); char[] tempArr2 = s2.toCharArray(); int length = s1.length(); if (s1.length() >= s2.length()) length = s2.length(); for (int i = 0; i < length; i++) { if ((int)tempArr1[i] < (int)tempArr2[i]) return -1; if ((int)tempArr1[i] > (int)tempArr2[i]) return 1; } return 0; } //5. Метод для удаления пустых пробелов после окончания строки. static void trimRight(String s) { int i = s.length()-1; while (i >= 0 && Character.isWhitespace(s.charAt(i))) { i--; } System.out.println(s.substring(0,i+1) + ";"); } //6. Метод для удаления пустых пробелов в начале строки. static void leftTrim(String s) { int i = 0; while (i < s.length() && Character.isWhitespace(s.charAt(i))) { i++; } System.out.println(s.substring(i)); } //7. Метод для добавления дополнительных пробелов после окончания строки для дополнения длины до n. static void padRight(String s, int length) { int count = 0; char[] temp = new char[length]; if (s.length() != length && s.length() < length) { for (int i = 0; i < s.length(); i++) { temp[i] = s.toCharArray()[i]; } for (int i = s.length(); i < temp.length; i++) temp[i] = '\u0020'; for (int i = 0; i < temp.length; i++) { System.out.print(temp[i]); } } else System.out.print(s); System.out.println(";"); } //8. Метод для добавления пробелов в начало строки. static void padLeft(String s, int length) { int index = 0; char[] temp = s.toCharArray(); char[] arrToReturn = new char[length]; if (s.length() != length && s.length() < length) { for (int i = length - s.length(); i < length; i++) { arrToReturn[i] = temp[index]; index++; } for (int i = 0; i < length; i++) { if (arrToReturn[i] == '\u0000') arrToReturn[i] = '\u0020'; } } else System.out.println(s); for (char c : arrToReturn) System.out.print(c); System.out.println(";"); } //9. Метод для выравнивания строки s по центру строки длины length. static void center(String s, int length) { int count = 0; char[] arrToRetrn = new char[length]; char[] temp = s.toCharArray(); if (s.length() != length && s.length() < length) { for (int i = (length - s.length()) / 2; i < s.length() + ((length - s.length()) / 2); i++) { arrToRetrn[i] = temp[count]; count++; } for (int i = 0; i < length; i++) { if (arrToRetrn[i] == '\u0000') arrToRetrn[i] = '\u0020'; } } else System.out.println(s); for (char c : arrToRetrn) System.out.print(c); } //10. Метод для подсчета вхождений символа reference в строку s. static int count(String s, char reference) { int counter = 0; for (char ch : s.toCharArray()) { if (ch == reference) counter++; } return counter; } //11. Метод для подсчета вхождений символов из строки ref в строку s; static int count(String s, String ref) { int counter = 0; for (char chOut : ref.toCharArray()) { for (char chIn : s.toCharArray()) { if (chOut == chIn) counter++; } } return counter; } //12. Метод для удаления символа reference из строки s. static void deleteChar(String s, char reference) { int count = 0; char[] charArray = s.toCharArray(); char[] arrayToReturn = new char[s.length()]; for (int i = 0; i < charArray.length; i++) { if (charArray[i] != reference) { arrayToReturn[count] = charArray[i]; count++; } } for (char c : arrayToReturn) System.out.print(c); } }