This code lesson teaches the first steps in coding with Java: writing code commands, running the code, writing Java programs. It comes with practical hands-on exercises with automated grading.
Learn more at https://softuni.org/code-lessons/java-tutorial-part-1-getting-started-with-java
In this lesson you will learn how to use basic syntax, conditions, if-else statements and loops (for-loop, while-loop and do-while-loop) in Java and how to use the debugger.
Watch the video lesson and access the hands-on exercises here: https://softuni.org/code-lessons/java-foundations-certification-basic-syntax-conditions-and-loops
Learn how to use arrays in Java, how to enter array, how to traverse an array, how to print array and more array operations.
Watch the video lesson and access the hands-on exercises here: https://softuni.org/code-lessons/java-foundations-certification-arrays
Java Foundations: Data Types and Type ConversionSvetlin Nakov
Learn how to use data types and variables in Java, how variables are stored in the memory and how to convert from one data type to another.
Watch the video lesson and access the hands-on exercises here: https://softuni.org/code-lessons/java-foundations-certification-data-types-and-variables
In this chapter we will explore strings. We are going to explain how they are implemented in Java and in what way we can process text content. Additionally, we will go through different methods for manipulating a text: we will learn how to compare strings, how to search for substrings, how to extract substrings upon previously settled parameters and last but not least how to split a string by separator chars. We will demonstrate how to correctly build strings with the StringBuilder class. We will provide a short but very useful information for the most commonly used regular expressions.
This document provides an overview of the Java programming language. It discusses key Java concepts like object-oriented programming, classes, methods, streams, and input/output. It also covers Java syntax like primitive types, variables, operators, flow control, and arrays. The document explains how Java code is compiled to bytecode and run on the Java Virtual Machine, making it platform independent.
In this chapter we will get familiar with primitive types and variables in Java – what they are and how to work with them. First we will consider the data types – integer types, real types with floating-point, Boolean, character, string and object type. We will continue with the variables, with their characteristics, how to declare them, how they are assigned a value and what is variable initialization.
Learn how to use lists in Java, how to use List<T> and ArrayList<T>, how to process lists of elements.
Watch the video lesson and access the hands-on exercises here: https://softuni.org/code-lessons/java-foundations-certification-lists
Here we are going to take a look how to use for loop, foreach loop and while loop. Also we are going to learn how to use and invoke methods and how to define classes in Java programming language.
Learn about how to define and invoke methods in Java, how to use parameters and return results. Watch the video lesson here:
https://softuni.org/code-lessons/java-foundations-certification-methods
03 and 04 .Operators, Expressions, working with the console and conditional s...Intro C# Book
The document discusses Java syntax and concepts including:
1. It introduces primitive data types in Java like int, float, boolean and String.
2. It covers variables, operators, and expressions - how they are used to store and manipulate data in Java.
3. It explains console input and output using Scanner and System.out methods for reading user input and printing output.
4. It provides examples of using conditional statements like if and if-else to control program flow based on conditions.
In this chapter we will explore strings. We are going to explain how they are implemented in C# and in what way we can process text content. Additionally, we will go through different methods for manipulating a text: we will learn how to compare strings, how to search for substrings, how to extract substrings upon previously settled parameters and last but not least how to split a string by separator chars. We will demonstrate how to correctly build strings with the StringBuilder class. We will provide a short but very useful information for the most commonly used regular expressions. We will discuss some classes for efficient construction of strings. Finally, we will take a look at the methods and classes for achieving more elegant and stricter formatting of the text content.
19. Data Structures and Algorithm ComplexityIntro C# Book
In this chapter we will compare the data structures we have learned so far by the performance (execution speed) of the basic operations (addition, search, deletion, etc.). We will give specific tips in what situations what data structures to use. We will explain how to choose between data structures like hash-tables, arrays, dynamic arrays and sets implemented by hash-tables or balanced trees. Almost all of these structures are implemented as part of NET Framework, so to be able to write efficient and reliable code we have to learn to apply the most appropriate structures for each situation.
This document provides an overview of Java collections basics, including arrays, lists, strings, sets, and maps. It defines each type of collection and provides examples of how to use them. Arrays allow storing fixed-length sequences of elements and can be accessed by index. Lists are like resizable arrays that allow adding, removing and inserting elements using the ArrayList class. Strings represent character sequences and provide various methods for manipulation and comparison. Sets store unique elements using HashSet or TreeSet. Maps store key-value pairs using HashMap or TreeMap.
Java Tutorial: Part 4 - Data and CalculationsSvetlin Nakov
This document provides an overview of variables, data types, statements, and arithmetic operators in Java. It discusses how computers store and process data using variables in memory. Variables are containers that store data of a specific type, such as integers, doubles, booleans, chars, and strings. The document also describes common statements that express actions in programs, like declaring variables, assigning values, printing outputs, and modifying values. Finally, it covers arithmetic operators for performing calculations on numbers, including addition, subtraction, multiplication, division, and modulo.
In this chapter we will review how to work with text files in C#. We will explain what a stream is, what its purpose is, and how to use it. We will explain what a text file is and how can you read and write data to a text file and how to deal with different character encodings. We will demonstrate and explain the good practices for exception handling when working with files. All of this will be demonstrated with many examples in this chapter
In this chapter we are going to get familiar with some of the basic presentations of data in programming: lists and linear data structures. Very often in order to solve a given problem we need to work with a sequence of elements. For example, to read completely this book we have to read sequentially each page, i.e. to traverse sequentially each of the elements of the set of the pages in the book. Depending on the task, we have to apply different operations on this set of data. In this chapter we will introduce the concept of abstract data types (ADT) and will explain how a certain ADT can have multiple different implementations. After that we shall explore how and when to use lists and their implementations (linked list, doubly-linked list and array-list). We are going to see how for a given task one structure may be more convenient than another. We are going to consider the structures "stack" and "queue", as well as their applications. We are going to get familiar with some implementations of these structures.
In this chapter we are going to get familiar with recursion and its applications. Recursion represents a powerful programming technique in which a method makes a call to itself from within its own method body. By means of recursion we can solve complicated combinatorial problems, in which we can easily exhaust different combinatorial configurations, e.g. generating permutations and variations and simulating nested loops. We are going to demonstrate many examples of correct and incorrect usage of recursion and convince you how useful it can be.
In this chapter we will get more familiar with what methods are and why we need to use them. The reader will be shown how to declare methods, what parameters are and what a method’s signature is, how to call a method, how to pass arguments of methods and how methods return values. At the end of this chapter we will know how to create our own method and how to use (invoke) it whenever necessary. Eventually, we will suggest some good practices in working with methods. The content of this chapter accompanied by detailed examples and exercises that will help the reader practice the learned material.
In this chapter we will examine the loop programming constructs through which we can execute a code snippet repeatedly. We will discuss how to implement conditional repetitions (while and do-while loops) and how to work with for-loops. We will give examples of different possibilities to define loops, how to construct them and some of their key usages. Finally, we will discuss the foreach-loop construct and how we can use multiple loops placed inside each other (nested loops).
Chapter 22. Lambda Expressions and LINQIntro C# Book
In this chapter we will become acquainted with some of the advanced capabilities of the C# language. To be more specific, we will pay attention on how to make queries to collections, using lambda expressions and LINQ, and how to add functionality to already created classes, using extension methods. We will get to know the anonymous types, describe their usage briefly and discuss lambda expressions and show in practice how most of the built-in lambda functions work. Afterwards, we will pay more attention to the LINQ syntax – we will learn what it is, how it works and what queries we can build with it. In the end, we will get to know the meaning of the keywords in LINQ, and demonstrate their capabilities with lots of examples.
In this chapter we will learn about arrays as a way to work with sequences of elements of the same type. We will explain what arrays are, how we declare, create, instantiate and use them. We will examine one-dimensional and multidimensional arrays. We will learn different ways to iterate through the array, read from the standard input and write to the standard output. We will give many example exercises, which can be solved using arrays and we will show how useful they really are.
What is Data Type?
Primitive Types in C#: Integer Types, Floating-Point Types, Decimal Type, Boolean Type, Character Types, Strings, Objects
Value Types and Reference Types
Variables. Using Variables: Declaring, Initializing, Assigning Value, Accessing Value
Literals: The Values of the Variables in the Source Code. Boolean Literals. Integer Literals. Floating-Point Literals, Decimal Literals, String Literals and Escaping Sequences
Exercises: Working with Primitive Types and Variables
The document discusses various concepts related to abstraction in software development including project architecture, code refactoring, enumerations, and the static keyword in Java. It describes how to split code into logical parts using methods and classes to improve readability, reuse code, and avoid repetition. Refactoring techniques like extracting methods and classes are presented to restructure code without changing behavior. Enumerations are covered as a way to represent numeric values from a fixed set as text. The static keyword is explained for use with classes, variables, methods, and blocks to belong to the class rather than object instances.
Arrays are collections of similar type of elements stored in contiguous memory locations. Java arrays are fixed in size and indexed starting from 0. Arrays allow for random access of elements and code optimization. Common array types include single dimensional and multidimensional arrays. Single dimensional arrays store elements in a linear list while multidimensional arrays can be thought of as tables with rows and columns. Strings in Java are objects that are immutable, meaning their values cannot be modified after creation.
Strings are immutable sequences of characters represented by the System.String class in .NET. The document discusses various methods for manipulating strings such as comparing, concatenating, searching, extracting substrings, splitting, replacing, deleting, changing case, and trimming. It recommends using a StringBuilder for efficient modification and building of strings. Formatting strings can be done using the ToString() and String.Format() methods along with formatting placeholders. Parsing numbers and dates from strings is culture-sensitive.
Here we are going to take a look how to use for loop, foreach loop and while loop. Also we are going to learn how to use and invoke methods and how to define classes in Java programming language.
Learn about how to define and invoke methods in Java, how to use parameters and return results. Watch the video lesson here:
https://softuni.org/code-lessons/java-foundations-certification-methods
03 and 04 .Operators, Expressions, working with the console and conditional s...Intro C# Book
The document discusses Java syntax and concepts including:
1. It introduces primitive data types in Java like int, float, boolean and String.
2. It covers variables, operators, and expressions - how they are used to store and manipulate data in Java.
3. It explains console input and output using Scanner and System.out methods for reading user input and printing output.
4. It provides examples of using conditional statements like if and if-else to control program flow based on conditions.
In this chapter we will explore strings. We are going to explain how they are implemented in C# and in what way we can process text content. Additionally, we will go through different methods for manipulating a text: we will learn how to compare strings, how to search for substrings, how to extract substrings upon previously settled parameters and last but not least how to split a string by separator chars. We will demonstrate how to correctly build strings with the StringBuilder class. We will provide a short but very useful information for the most commonly used regular expressions. We will discuss some classes for efficient construction of strings. Finally, we will take a look at the methods and classes for achieving more elegant and stricter formatting of the text content.
19. Data Structures and Algorithm ComplexityIntro C# Book
In this chapter we will compare the data structures we have learned so far by the performance (execution speed) of the basic operations (addition, search, deletion, etc.). We will give specific tips in what situations what data structures to use. We will explain how to choose between data structures like hash-tables, arrays, dynamic arrays and sets implemented by hash-tables or balanced trees. Almost all of these structures are implemented as part of NET Framework, so to be able to write efficient and reliable code we have to learn to apply the most appropriate structures for each situation.
This document provides an overview of Java collections basics, including arrays, lists, strings, sets, and maps. It defines each type of collection and provides examples of how to use them. Arrays allow storing fixed-length sequences of elements and can be accessed by index. Lists are like resizable arrays that allow adding, removing and inserting elements using the ArrayList class. Strings represent character sequences and provide various methods for manipulation and comparison. Sets store unique elements using HashSet or TreeSet. Maps store key-value pairs using HashMap or TreeMap.
Java Tutorial: Part 4 - Data and CalculationsSvetlin Nakov
This document provides an overview of variables, data types, statements, and arithmetic operators in Java. It discusses how computers store and process data using variables in memory. Variables are containers that store data of a specific type, such as integers, doubles, booleans, chars, and strings. The document also describes common statements that express actions in programs, like declaring variables, assigning values, printing outputs, and modifying values. Finally, it covers arithmetic operators for performing calculations on numbers, including addition, subtraction, multiplication, division, and modulo.
In this chapter we will review how to work with text files in C#. We will explain what a stream is, what its purpose is, and how to use it. We will explain what a text file is and how can you read and write data to a text file and how to deal with different character encodings. We will demonstrate and explain the good practices for exception handling when working with files. All of this will be demonstrated with many examples in this chapter
In this chapter we are going to get familiar with some of the basic presentations of data in programming: lists and linear data structures. Very often in order to solve a given problem we need to work with a sequence of elements. For example, to read completely this book we have to read sequentially each page, i.e. to traverse sequentially each of the elements of the set of the pages in the book. Depending on the task, we have to apply different operations on this set of data. In this chapter we will introduce the concept of abstract data types (ADT) and will explain how a certain ADT can have multiple different implementations. After that we shall explore how and when to use lists and their implementations (linked list, doubly-linked list and array-list). We are going to see how for a given task one structure may be more convenient than another. We are going to consider the structures "stack" and "queue", as well as their applications. We are going to get familiar with some implementations of these structures.
In this chapter we are going to get familiar with recursion and its applications. Recursion represents a powerful programming technique in which a method makes a call to itself from within its own method body. By means of recursion we can solve complicated combinatorial problems, in which we can easily exhaust different combinatorial configurations, e.g. generating permutations and variations and simulating nested loops. We are going to demonstrate many examples of correct and incorrect usage of recursion and convince you how useful it can be.
In this chapter we will get more familiar with what methods are and why we need to use them. The reader will be shown how to declare methods, what parameters are and what a method’s signature is, how to call a method, how to pass arguments of methods and how methods return values. At the end of this chapter we will know how to create our own method and how to use (invoke) it whenever necessary. Eventually, we will suggest some good practices in working with methods. The content of this chapter accompanied by detailed examples and exercises that will help the reader practice the learned material.
In this chapter we will examine the loop programming constructs through which we can execute a code snippet repeatedly. We will discuss how to implement conditional repetitions (while and do-while loops) and how to work with for-loops. We will give examples of different possibilities to define loops, how to construct them and some of their key usages. Finally, we will discuss the foreach-loop construct and how we can use multiple loops placed inside each other (nested loops).
Chapter 22. Lambda Expressions and LINQIntro C# Book
In this chapter we will become acquainted with some of the advanced capabilities of the C# language. To be more specific, we will pay attention on how to make queries to collections, using lambda expressions and LINQ, and how to add functionality to already created classes, using extension methods. We will get to know the anonymous types, describe their usage briefly and discuss lambda expressions and show in practice how most of the built-in lambda functions work. Afterwards, we will pay more attention to the LINQ syntax – we will learn what it is, how it works and what queries we can build with it. In the end, we will get to know the meaning of the keywords in LINQ, and demonstrate their capabilities with lots of examples.
In this chapter we will learn about arrays as a way to work with sequences of elements of the same type. We will explain what arrays are, how we declare, create, instantiate and use them. We will examine one-dimensional and multidimensional arrays. We will learn different ways to iterate through the array, read from the standard input and write to the standard output. We will give many example exercises, which can be solved using arrays and we will show how useful they really are.
What is Data Type?
Primitive Types in C#: Integer Types, Floating-Point Types, Decimal Type, Boolean Type, Character Types, Strings, Objects
Value Types and Reference Types
Variables. Using Variables: Declaring, Initializing, Assigning Value, Accessing Value
Literals: The Values of the Variables in the Source Code. Boolean Literals. Integer Literals. Floating-Point Literals, Decimal Literals, String Literals and Escaping Sequences
Exercises: Working with Primitive Types and Variables
The document discusses various concepts related to abstraction in software development including project architecture, code refactoring, enumerations, and the static keyword in Java. It describes how to split code into logical parts using methods and classes to improve readability, reuse code, and avoid repetition. Refactoring techniques like extracting methods and classes are presented to restructure code without changing behavior. Enumerations are covered as a way to represent numeric values from a fixed set as text. The static keyword is explained for use with classes, variables, methods, and blocks to belong to the class rather than object instances.
Arrays are collections of similar type of elements stored in contiguous memory locations. Java arrays are fixed in size and indexed starting from 0. Arrays allow for random access of elements and code optimization. Common array types include single dimensional and multidimensional arrays. Single dimensional arrays store elements in a linear list while multidimensional arrays can be thought of as tables with rows and columns. Strings in Java are objects that are immutable, meaning their values cannot be modified after creation.
Strings are immutable sequences of characters represented by the System.String class in .NET. The document discusses various methods for manipulating strings such as comparing, concatenating, searching, extracting substrings, splitting, replacing, deleting, changing case, and trimming. It recommends using a StringBuilder for efficient modification and building of strings. Formatting strings can be done using the ToString() and String.Format() methods along with formatting placeholders. Parsing numbers and dates from strings is culture-sensitive.
String Handling, Inheritance, Packages and InterfacesPrabu U
The presentation starts with string handling. Then the concepts of inheritance is detailed. Finally the concepts of packages and interfaces are detailed.
This document contains a presentation on self-learning modules in Python. It discusses:
1. Assigning modules to different students for learning.
2. Modules, packages, and libraries as different ways to reuse code in Python. A module is a file with the .py extension, a package is a folder containing modules, and a library is a collection of packages.
3. The Python standard library contains built-in functions and modules that are part of the Python installation. Common modules discussed include math, random, and urllib.
This document provides an overview of key concepts in Java including Eclipse IDE, creating classes, the main method, printing output, variables, data types, user input, arithmetic operators, and typecasting. It explains how to create a Java class in Eclipse, use print statements, declare and initialize variables, take user input, and perform basic math operations and conversions between data types in Java.
This document provides an overview of common string operations in C++, including how to declare and initialize strings, access individual characters, compare strings, append to strings, search within strings, and convert between C++ strings and C-style character arrays. It also describes some additional string utility functions provided in the CS106 library like converting case and converting between strings and numbers.
The StringBuilder class in Java is used to create mutable strings. It is similar to the StringBuffer class but is non-synchronized. Some key methods of StringBuilder include append() to add to the string, insert() to insert into the string, replace() to replace part of the string, and delete() to remove part of the string. StringBuilder also allows getting and setting the capacity, length, and characters of the string.
1) The document discusses C++ strings and the string class. It provides two representations of strings in C++ - C-style character strings and the string class.
2) Functions like strcpy(), strcat(), strlen() etc. can be used to manipulate C-style strings. The string class provides similar and additional functionality.
3) Examples are given to demonstrate declaring and using C-style strings, the string class, and functions to copy, concatenate, get the length of strings. Input from the user is also demonstrated.
The document discusses various String methods in Java:
- The charAt() method returns the character at a given index in the String.
- The compareTo() method compares two Strings lexicographically and returns an integer indicating their relative ordering.
- The indexOf() method returns the index of the first occurrence of a character or substring in the given String. It has overloads to specify a starting index for the search.
This document provides information about strings and characters in Java. It includes definitions of strings and characters, examples of using string methods like length(), substring(), indexOf(), and equals(). It also discusses formatting output with printf and comparing/modifying strings and characters. The document is from a textbook on building Java programs and is copyrighted material. It contains exercises for students to complete.
What can be done with Java, but should better be done with Erlang (@pavlobaron)Pavlo Baron
Erlang excels at building distributed, fault-tolerant, concurrent applications due to its lightweight process model and built-in support for distribution. However, Java is more full-featured and is generally a better choice for applications that require more traditional object-oriented capabilities or need to interface with existing Java libraries and frameworks. Both languages have their appropriate uses depending on the requirements of the specific application being developed.
Vision academy classes_bcs_bca_bba_java part_2NayanTapare1
Digital marketing, refers to marketing methods that allow organizations to see how a campaign is performing in real-time, such as what is being viewed, how often, how long, as well as other statistics such as sales conversions.
This document provides notes on Strings and StringBuffers in Java. It discusses:
- The String and StringBuffer classes, their key differences, and common constructors for each.
- Common String methods like length(), charAt(), equals(), compareTo(), and toUpperCase().
- How to extract, compare, modify and check substrings within a String.
- Common StringBuffer methods like append(), insert(), delete(), and replace() that allow mutable string operations.
- The Java util Date class and Random number generator, with examples of constructing and using each.
It then covers exceptions in Java, including checked vs unchecked exceptions, syntax for try/catch blocks, and using multiple
The document contains code examples that demonstrate different data types in C#, including writing to the console, reading user input, numeric formatting, overflow handling, floating point numbers, enumerations, and arrays. Specifically, it shows how to:
1) Write and read from the console using Console.Write and Console.ReadLine methods.
2) Format numeric output using formats like currency, integer, exponential, etc.
3) Demonstrate overflow for byte data type values beyond its range.
4) Define and use enumerations to represent day names.
5) Initialize and access elements of an integer array.
Java string , string buffer and wrapper classSimoniShah6
The document discusses Java strings and wrapper classes. It provides examples of creating and manipulating strings using the String, StringBuffer, and StringBuilder classes. It also discusses the eight primitive wrapper classes in Java and examples converting between primitive types and their corresponding wrapper classes.
AI and the Future of Devs: Nakov @ Techniverse (Nov 2024)Svetlin Nakov
Programming with AI: Trends for the Software Engineering Profession
In this discussion, Dr. Nakov talks about the profession of "software engineer" and its future development under the influence of artificial intelligence and modern AI tools. He showcases tools such as conversational AI chatbots (like ChatGPT and Claude), AI coding assistants (like Cursor AI and GitHub Copilot), and autonomous AI coding agents (like Replit Agent and Bolt.new) for independently building end-to-end software projects. He discusses the future role of programmers and technical specialists.
Contents:
AI Tools for Developers: Evolution
AI Chatbots for Coding (ChatGPT, Claude)
AI Coding Assistants (Cursor, GitHub Copilot, Tabnine)
AI Developer Agents (Devin, Code Droid, AutoCodeRover)
AI as a Tool for Developers, not a Replacement
Shifting Developer Skillsets to Adopt AI
Developer Job Market: Evolution
Speaker: Svetlin Nakov, PhD
Date: 30-Nov-2024
Event: Techniverse 2024
AI за ежедневието - Наков @ Techniverse (Nov 2024)Svetlin Nakov
AI инструменти в ежедневието
Инструментите с изкуствен интелект като ChatGPT, Claude и Gemini постепенно изместват традиционните търсачки и традиционния начин за търсене и анализ на информация, писане и създаване на бизнес документи и комуникация. В тази дискусия с примери на живо ще ви демонстрираме някои AI инструменти и ще ви дадем идеи как да ги използвате, например за измисляне на идеи на подарък, измисляне на имена, създаване на план за пътуване, резюме на статия, резюме на книга, решаване на задачи по математика, писане на есета, помощ по медицински въпрос, създаване на CV и мотивационно писмо и други.
Съдържание:
Популярни AI инструменти: ChatGPT, Claude, Gemini, Copilot, Perplexity
Структура на запитванията: Контекст, инструкция, персона, входни / изходни данни
AI при избор на име: помощник с оригинални предложения
AI при избор на подарък: креативен съветник, пълен с идеи
AI за избор на продукти: бързо проучване и сравнение
AI за планиране на пътувания: проучване, съставяне на план, препоръки
AI за планиране на събитие: планиране на рожден ден, сватба, екскурзия
AI за писане на текстове: писане на статия, есе, детектори за AI-генериран текст
AI резюме на статии и книги: изваждане на най-важното от книга / статия; как да четем книги без да ги имаме? NotebookLM
AI за диаграми и графики: визуализация чрез диаграма / графика / чертеж
AI при технически въпроси: ефективно решаване на технически проблеми
AI при търсене за работа: търсене и кандидатстване за работа, писане на CV, cover letter, Final Round AI
AI за медицински въпроси: aнализ на изследвания, въпроси за заболявания, диагнози, лечения, медикаменти и т.н.
Още AI инструменти: AI за генериране и редакция на картинки; AI за генериране на музика, FreePik, Suno, Looka, SciSpace
Лектор: д-р Светлин Наков, съосновател на СофтУни и SoftUni AI
Дата: 30.11.2024 г.
Д-р Светлин Наков е вдъхновител на хиляди млади хора да се захванат с програмиране, технологии и иновации, визионер, технологичен предприемач, вдъхновяващ преподавател, с 20+ години опит като иноватор в технологичното образование. Той е съосновател и двигател в развитието на СофтУни - най-голямата обучителна организация в сферата на технологиите в България и региона. Съосновател на гимназия за дигитални науки "СофтУни БУДИТЕЛ" и на няколко стартъп проекта. Наков има докторска степен в сферата на изкуствения интелект и изчислителната лингвистика. Носител е на Президентска награда "Джон Атанасов". Мечтата му е да направи България силициевата долина на Европа чрез образование и иновации.
AI инструменти за бизнеса - Наков - Nov 2024Svetlin Nakov
AI инструменти за бизнеса
Д-р Светлин Наков @ Digital Tarnovo Summit 2024
Тема: Практически AI инструменти за трансформация на бизнеса
Описание: Лекцията на д-р Светлин Наков, съосновател на СофтУни, представя конкретни AI инструменти, които променят ежедневието и продуктивността в бизнес среда. Демонстрирайки как технологии като ChatGPT, Gemini и Claude оптимизират процеси, той показва как тези решения подпомагат задачи като създаване на оферти, разработка на маркетингови кампании, автоматизация на писмени договори, анализ на документи и други. Специално внимание се отделя на AI инструменти за креативни нужди – Looka за дизайн на лога, FreePik за ретуширане на изображения и Runway за създаване на видеа.
Събитието включва демонстрации на различни платформи, като MS Copilot за търсене в реално време и Perplexity за задълбочен онлайн анализ, предоставяйки на участниците ясно разбиране за това как всеки от тези AI асистенти се използва за решаване на специфични бизнес задачи.
Software Engineers in the AI Era - Sept 2024Svetlin Nakov
Software Engineers in the AI Era and the Future of Software Engineering
Dr. Svetlin Nakov @ AI Industrial Summit
Sofia, September 2024
In the rapidly evolving landscape of AI technology, the role of software engineers is deeply transforming. In this session, we shall explore how AI is reshaping the future of development, shifting the focus from traditional coding and debugging to higher-level responsibilities such as problem-solving, system design, project management, customer collaboration, and effective interaction with AI tools.
In this presentation we delve into the emerging roles of developers, who will increasingly serve as coordinators of the development process, leveraging AI to enhance productivity and creativity.
We discuss how to navigate this new AI era, where less time is spent writing code, and more time is dedicated to interacting with AI, guiding its outputs, and ensuring the outcomes in software engineering.
Topics covered:
AI Tools for Developers: Evolution
AI Chatbots for Coding (ChatGPT, Claude)
AI Coding Assistants (Cursor, GitHub Copilot, Tabnine)
AI Developer Agents (Devin, Code Droid, AutoCodeRover)
AI as a Tool for Developers, not a Replacement
Shifting Developer Skillsets to Adopt AI
Developer Job Market: Evolution
Най-търсените направления в ИТ сферата за 2024Svetlin Nakov
Най-търсените направления в ИТ сферата?
д-р Светлин Наков, съосновател на СофтУни
София, май 2024 г.
Какво се случва на пазара на труда в ИТ сектора?
Какви са прогнозите за ИТ сектора за напред?
Защо има смисъл да учиш програмиране и ИТ през 2024?
Каква е ролята на AI в ИТ професиите?
Как да започна работа като junior?
Upskill програмите на СофтУни
BG-IT-Edu: отворено учебно съдържание за ИТ учителиSvetlin Nakov
Отворено учебно съдържание по програмиране и ИТ за учители
Безплатни учебни курсове и ресурси за ИТ учители
Разработени курсове към 03/2024 г. в BG-IT-Edu
https://github.com/BG-IT-Edu
Качествени учебни курсове (учебно съдържание) за ИТ учители: презентации + примери + упражнения + проекти + задачи за изпитване + judge система + насоки за учителите
Достъпни безплатно, под отворен лиценз CC-BY-NC-SA
Разработени от СофтУни Фондацията, по инициатива и под надзора на д-р Светлин Наков
Научете повече тук: https://nakov.com/blog/2024/03/27/bg-it-edu-open-education-content-for-it-teachers/
Светът на програмирането през 2024 г.
Продължава ли бумът на технологичните професии? Кои професии ще се търсят? Как да започна?
Прогнозата на д-р Светлин Наков за бъдещето на софтуерните професии в България
Има ли смисъл да учиш програмиране през 2024?
Какво се търси на пазара на труда?
Ще продължи ли търсенето на програмисти и през 2024?
Все още ли е най-търсената професия в технологиите?
Ролята на AI в сферата на софтуерните разработчици
Какво се случва на пазара на труда?
Има ли спад в търсенето на програмисти?
Как да започна с програмирането?
Видео от събитието сме качили във FB: https://fb.com/events/346653434644683
AI Tools for Business and Startups
Svetlin Nakov @ Innowave Summit 2023
Artificial Intelligence is already here!
AI Tools for Business: Where is AI Used?
ChatGPT and Bard in Daily Tasks
ChatGPT and Bard for Creativity
ChatGPT and Bard for Marketing
ChatGPT for Data Analysis
DALL-E for Image Generation
Learn more at: https://nakov.com/blog/2023/11/25/ai-for-business-and-startups-my-talk-at-innowave-summit-2023/
AI Tools for Scientists - Nakov (Oct 2023)Svetlin Nakov
Инструменти с изкуствен интелект в помощ на изследователите
Д-р Светлин Наков @ Anniversary Scientific Session dedicated to the 120th anniversary of the birth of John Atanasoff
Изкуствен интелект при стартиране и управление на бизнес
Семинар във FinanceAcademy.bg
Д-р Светлин Наков
Изкуственият интелект (ИИ) е вече тук!
Къде се ползва ИИ?
ChatGPT – демо
Bard – демо
Claude – демо
Bing Chat – демо
Perplexity – демо
Bing Image Create – демо
Bulgarian Tech Industry - Nakov at Dev.BG All in One Conference 2023Svetlin Nakov
IT industry in Bulgaria: key factors for success and the future. Deep tech, science, innovation, and education and how we can achieve more as an industry?
Dr. Svetlin Nakov
Innovation and Inspiration Manager @ SoftUni
Contents:
How big is the IT industry in Bulgaria?
Number of software professionals in Bulgaria: according to historical data from BASSCOM
Share of the software industry in GDP
Why does Bulgaria have such a successful IT industry?
Education for the tech industry: school education in software professions and profiles (2022/2023)
Education for the tech industry: Students in university in IT specialties (2022/2023)
Education for the IT industry: Learners at SoftUni (2022/2023)
Evolution of the Bulgarian software industry
How much can the industry grow?
Trends in the IT industry: AI progress, the IT market in Bulgaria, deep tech, science, and innovation
AI in the software industry
How to achieve more as an industry? education, deep tech, science, and innovation, entrepreneurship
Introduction
The IT industry in Bulgaria is one of the most successful in the country. It has grown rapidly in recent years and is now a major contributor to the economy. In this talk, Dr. Nakov explores the key factors behind the success of the Bulgarian IT industry, as well as its future prospects.
AI Tools for Business and Personal LifeSvetlin Nakov
A talk at LeaderClass.BG, Sofia, August 2023
by Svetlin Nakov, PhD
The artificial intelligence (AI) is here!
Where is AI used?
ChatGPT - demo
Bing Chat - demo
Bard - demo
Claude - demo
Bing Image Create - demo
Playground AI - demo
In this talk the speaker explains and demonstrates some AI tools for the business and personal life:
ChatGPT: a large language model that can generate text, translate languages, write different kinds of creative content, and answer your questions in an informative way.
Bing Chat: an Internet-connected AI chatbot that can search Internet and answer questions.
Bard: a large language model from Google AI, trained on a massive dataset of text and code, similar to ChatGPT.
Claude: A large AI chatbot, similar to ChatGPT, powerful in document analysis.
Bing Image Create: a tool that can generate images based on text descriptions.
Playground AI: image generator and image editor, based on generative AI.
Дипломна работа: учебно съдържание по ООП - Светлин НаковSvetlin Nakov
Дипломна работа на тема
"Учебно съдържание по обектно-ориентирано програмиране в профилираната подготовка по информатика"
Дипломант: д-р Светлин Наков
Специалност: Педагогика на обучението по информатика и информационни технологии в училище (ПОИИТУ)
Степен: магистър
Пловдивски университет "Паисий Хилендарски"
Факултет по математика и информатика (ФМИ)
Катедра “Компютърни технологии”
Настоящата дипломна работа има за цел да подпомогне българските ИТ учители от системата на средното образование в профилираните гимназии и паралелки, като им предостави безплатно добре разработени учебни програми и качествено учебно съдържание за преподаване в първия и най-важен модул от профил “Софтуерни и хардуерни науки”, а именно “Модул 1. Обектно-ориентирано проектиране и програмиране”.
Чрез изграждането на качествени учебни програми и ресурси за преподаване и пренасяне на добре изпитани образователни практики от автора на настоящата дипломна работа (д-р Светлин Наков) към българските ИТ учители целим значително да подпомогнем учителите в тяхната образователна кауза и да повишим качеството на обучението по програмиране в профилираните гимназии с профил “Софтуерни и хардуерни науки”.
Резултатите от настоящата дипломна работа са вече внедрени в практиката и разработените учебни ресурси се използват реално от стотици ИТ учители в България в ежедневната им работа. Това е една от основните цели и тя вече е изпълнена, още преди защитата на настоящата дипломна работа.
Прочетете повече в блога на д-р Наков: https://nakov.com/blog/2023/07/08/free-learning-content-oop-nakov/
Дипломна работа: учебно съдържание по ООПSvetlin Nakov
Презентация за защита на
Дипломна работа на тема
"Учебно съдържание по обектно-ориентирано програмиране в профилираната подготовка по информатика"
Дипломант: д-р Светлин Наков
Пловдивски университет "Паисий Хилендарски"
Факултет по математика и информатика (ФМИ)
Катедра “Компютърни технологии”
Защитена на: 8 юли 2023 г.
Научете повече в блога на д-р Наков: https://nakov.com/blog/2023/07/08/free-learning-content-oop-nakov
Свободно ИТ учебно съдържание за учители по програмиране и ИТSvetlin Nakov
В тази сесия разказвам за училищното образование по програмиране и ИТ, за професионалните и профилираните гимназии, свързани с програмиране и ИТ, за STEM кабинетите, за българските ИТ учители и тяхната подготовка, за проблемите, с които те се сблъскват, и как можем да им помогнем чрез проекта „Свободно учебно съдържание по програмиране и ИТ“: https://github.com/BG-IT-Edu.
Open Fest 2021, 14 август, София
В света се засилва тенденцията за установяване на STEAM образованието като двигател на научно-техническия прогрес чрез развитие на интердисциплинарни умения в сферата на природните науки, математиката, информационните технологии, инженерните науки и изкуствата в училищна възраст. С масовото изграждане на STEAM лаборатории в българските училища се изостря недостига на добре подготвени STEAM и ИТ учители.
Вярвайки в идеята, че българската ИТ общност може да помогне за решаването на проблема, през 2020 г. по инициатива на СофтУни Фондацията стартира проект за създаване на безплатно учебно съдържание по програмиране и ИТ за учители в подкрепа на училищното технологично образование. Проектът е със свободен лиценз в GitHub: https://github.com/BG-IT-Edu. Учителите получават безплатно богат комплект от съвременни учебни материали с високо качество: презентации, постъпкови ръководства, задачи за упражнения и практически проекти, окомплектовани с насоки, подсказки и решения, безплатна система за автоматизирано тестване на решенията и други учебни ресурси, на български и английски език.
Създадени са голяма част от учебните курсове за професиите "Приложен програмист", "Системен програмист" и "Програмист" в професионалните гимназии. Амбицията на проекта е да се създадат свободни учебни материали и за обученията в профил "Софтуерни и хардуерни науки" в профилираните гимназии.
Целта на проекта “Свободно ИТ учебно съдържание за учители” е да подпомогне българския ИТ учител с качествени учебни материали, така че да преподава на добро ниво и със съвременни технологии и инструменти, за да положи основите на подготовката на бъдещите ИТ специалисти и дигитални лидери на България.
В лекцията разказвам за училищното образование по програмиране и ИТ, за професионалните и профилираните гимназии, свързани с програмиране и ИТ, за STEM кабинетите, за българските ИТ учители и тяхната подготовка, за проблемите с които те се срещат, за липсата на учебници и учебни материали по програмиране, ИТ и по техническите дисциплини и как можем да помогнем на ИТ учителите.
A public talk "AI and the Professions of the Future", held on 29 April 2023 in Veliko Tarnovo by Svetlin Nakov. Main topics:
AI is here today --> take attention to it!
- ChatGPT: revolution in language AI
- Playground AI – AI for image generation
AI and the future professions
- AI-replaceable professions
- AI-resistant professions
AI in Education
Ethics in AI
This document discusses programming language trends and career opportunities. It analyzes data from sites like Stack Overflow, GitHub, and LinkedIn to determine the most in-demand languages in 2022 and predictions for 2023. The top 6 languages are Python, JavaScript, Java, C#, C++, and PHP. To become a software engineer, one needs 1-2 years of study focusing on coding skills, algorithms, software concepts, and languages/technologies while building practical projects and gaining experience through internships or jobs.
IT Professions and How to Become a DeveloperSvetlin Nakov
IT Professions and Their Future
The landscape of IT professions in the tech industry: software developer, front-end, back-end, AI, cloud, DevOps, QA, Java, JavaScript, Python, C#, C++, digital marketing, SEO, SEM, SMM, project manager, business analyst, CRM / ERP consultant, design / UI / UX expert, Web designer, motion designer, etc.
Industry 4.0 and the future of manufacturing, smart cities and digitalization of everything.
What are the most in-demand professions on LinkedIn? Why the best jobs in the world are related to software development and IT?
How to learn coding and start a tech job?
Why anyone can be a software developer?
Dr. Svetlin Nakov
December 2022
GitHub Actions (Nakov at RuseConf, Sept 2022)Svetlin Nakov
Building a CI/CD System with GitHub Actions
Dr. Svetlin Nakov
September 2022
Intro to Continuous Integration (CI), Continuous Delivery (CD), Continuous Deployment (CD), and CI/CD Pipelines
Intro to GitHub Actions
Building CI workflow
Building CD workflow
Live Demo: Build CI System for JS and .NET Apps
WinRAR Crack for Windows (100% Working 2025)sh607827
copy and past on google ➤ ➤➤ https://hdlicense.org/ddl/
WinRAR Crack Free Download is a powerful archive manager that provides full support for RAR and ZIP archives and decompresses CAB, ARJ, LZH, TAR, GZ, ACE, UUE, .
PRTG Network Monitor Crack Latest Version & Serial Key 2025 [100% Working]saimabibi60507
Copy & Past Link 👉👉
https://dr-up-community.info/
PRTG Network Monitor is a network monitoring software developed by Paessler that provides comprehensive monitoring of IT infrastructure, including servers, devices, applications, and network traffic. It helps identify bottlenecks, track performance, and troubleshoot issues across various network environments, both on-premises and in the cloud.
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Eric D. Schabell
It's time you stopped letting your telemetry data pressure your budgets and get in the way of solving issues with agility! No more I say! Take back control of your telemetry data as we guide you through the open source project Fluent Bit. Learn how to manage your telemetry data from source to destination using the pipeline phases covering collection, parsing, aggregation, transformation, and forwarding from any source to any destination. Buckle up for a fun ride as you learn by exploring how telemetry pipelines work, how to set up your first pipeline, and exploring several common use cases that Fluent Bit helps solve. All this backed by a self-paced, hands-on workshop that attendees can pursue at home after this session (https://o11y-workshops.gitlab.io/workshop-fluentbit).
Full Cracked Resolume Arena Latest Versionjonesmichealj2
Resolume Arena is a professional VJ software that lets you play, mix, and manipulate video content during live performances.
This Site is providing ✅ 100% Safe Crack Link:
Copy This Link and paste it in a new tab & get the Crack File
↓
➡ 🌍📱👉COPY & PASTE LINK👉👉👉 👉 https://yasir252.my/
Apple Logic Pro X Crack FRESH Version 2025fs4635986
🌍📱👉COPY LINK & PASTE ON GOOGLE http://drfiles.net/ 👈🌍
Logic Pro X is a professional digital audio workstation (DAW) software for macOS, developed by Apple. It's a comprehensive tool for music creation, offering features for songwriting, beat making, editing, and mixing. Logic Pro X provides a wide range of instruments, effects, loops, and samples, enabling users to create a variety of musical styles.
Here's a more detailed breakdown:
Digital Audio Workstation (DAW):
Logic Pro X allows users to record, edit, and mix audio and MIDI tracks, making it a central hub for music production.
MIDI Sequencing:
It supports MIDI sequencing, enabling users to record and manipulate MIDI performances, including manipulating parameters like note velocity, timing, and dynamics.
Software Instruments:
Logic Pro X comes with a vast collection of software instruments, including synthesizers, samplers, and virtual instruments, allowing users to create a wide variety of sounds.
Audio Effects:
It offers a wide range of audio effects, such as reverbs, delays, EQs, compressors, and distortion, enabling users to shape and polish their mixes.
Recording Facilities:
Logic Pro X provides various recording facilities, allowing users to record vocals, instruments, and other audio sources.
Mixing and Mastering:
It offers tools for mixing and mastering, allowing users to refine their mixes and prepare them for release.
Integration with Apple Ecosystem:
Logic Pro X integrates well with other Apple products, such as GarageBand, allowing for seamless project transfer and collaboration.
Logic Remote:
It supports remote control via iPad or iPhone, enabling users to manipulate instruments and control mixing functions from another device.
Creating Automated Tests with AI - Cory House - Applitools.pdfApplitools
In this fast-paced, example-driven session, Cory House shows how today’s AI tools make it easier than ever to create comprehensive automated tests. Full recording at https://applitools.info/5wv
See practical workflows using GitHub Copilot, ChatGPT, and Applitools Autonomous to generate and iterate on tests—even without a formal requirements doc.
Top 10 Data Cleansing Tools for 2025.pdfAffinityCore
Discover the top 10 data cleansing tools for 2025, designed to help businesses clean, transform, and enhance data accuracy. Improve decision-making and data quality with these powerful solutions.
🌱 Green Grafana 🌱 Essentials_ Data, Visualizations and Plugins.pdfImma Valls Bernaus
eady to harness the power of Grafana for your HackUPC project? This session provides a rapid introduction to the core concepts you need to get started. We'll cover Grafana fundamentals and guide you through the initial steps of building both compelling dashboards and your very first Grafana app. Equip yourself with the essential tools to visualize your data and bring your innovative ideas to life!
Avast Premium Security Crack FREE Latest Version 2025mu394968
🌍📱👉COPY LINK & PASTE ON GOOGLE https://dr-kain-geera.info/👈🌍
Avast Premium Security is a paid subscription service that provides comprehensive online security and privacy protection for multiple devices. It includes features like antivirus, firewall, ransomware protection, and website scanning, all designed to safeguard against a wide range of online threats, according to Avast.
Key features of Avast Premium Security:
Antivirus: Protects against viruses, malware, and other malicious software, according to Avast.
Firewall: Controls network traffic and blocks unauthorized access to your devices, as noted by All About Cookies.
Ransomware protection: Helps prevent ransomware attacks, which can encrypt your files and hold them hostage.
Website scanning: Checks websites for malicious content before you visit them, according to Avast.
Email Guardian: Scans your emails for suspicious attachments and phishing attempts.
Multi-device protection: Covers up to 10 devices, including Windows, Mac, Android, and iOS, as stated by 2GO Software.
Privacy features: Helps protect your personal data and online privacy.
In essence, Avast Premium Security provides a robust suite of tools to keep your devices and online activity safe and secure, according to Avast.
How can one start with crypto wallet development.pptxlaravinson24
This presentation is a beginner-friendly guide to developing a crypto wallet from scratch. It covers essential concepts such as wallet types, blockchain integration, key management, and security best practices. Ideal for developers and tech enthusiasts looking to enter the world of Web3 and decentralized finance.
Cryptocurrency Exchange Script like Binance.pptxriyageorge2024
This SlideShare dives into the process of developing a crypto exchange platform like Binance, one of the world’s largest and most successful cryptocurrency exchanges.
Exploring Wayland: A Modern Display Server for the FutureICS
Wayland is revolutionizing the way we interact with graphical interfaces, offering a modern alternative to the X Window System. In this webinar, we’ll delve into the architecture and benefits of Wayland, including its streamlined design, enhanced performance, and improved security features.
DVDFab Crack FREE Download Latest Version 2025younisnoman75
⭕️➡️ FOR DOWNLOAD LINK : http://drfiles.net/ ⬅️⭕️
DVDFab is a multimedia software suite primarily focused on DVD and Blu-ray disc processing. It offers tools for copying, ripping, creating, and editing DVDs and Blu-rays, as well as features for downloading videos from streaming sites. It also provides solutions for playing locally stored video files and converting audio and video formats.
Here's a more detailed look at DVDFab's offerings:
DVD Copy:
DVDFab offers software for copying and cloning DVDs, including removing copy protections and creating backups.
DVD Ripping:
This allows users to rip DVDs to various video and audio formats for playback on different devices, while maintaining the original quality.
Blu-ray Copy:
DVDFab provides tools for copying and cloning Blu-ray discs, including removing Cinavia protection and creating lossless backups.
4K UHD Copy:
DVDFab is known for its 4K Ultra HD Blu-ray copy software, allowing users to copy these discs to regular BD-50/25 discs or save them as 1:1 lossless ISO files.
DVD Creator:
This tool allows users to create DVDs from various video and audio formats, with features like GPU acceleration for faster burning.
Video Editing:
DVDFab includes a video editing tool for tasks like cropping, trimming, adding watermarks, external subtitles, and adjusting brightness.
Video Player:
A free video player that supports a wide range of video and audio formats.
All-In-One:
DVDFab offers a bundled software package, DVDFab All-In-One, that includes various tools for handling DVD and Blu-ray processing.
Who Watches the Watchmen (SciFiDevCon 2025)Allon Mureinik
Tests, especially unit tests, are the developers’ superheroes. They allow us to mess around with our code and keep us safe.
We often trust them with the safety of our codebase, but how do we know that we should? How do we know that this trust is well-deserved?
Enter mutation testing – by intentionally injecting harmful mutations into our code and seeing if they are caught by the tests, we can evaluate the quality of the safety net they provide. By watching the watchmen, we can make sure our tests really protect us, and we aren’t just green-washing our IDEs to a false sense of security.
Talk from SciFiDevCon 2025
https://www.scifidevcon.com/courses/2025-scifidevcon/contents/680efa43ae4f5
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfTechSoup
In this webinar we will dive into the essentials of generative AI, address key AI concerns, and demonstrate how nonprofits can benefit from using Microsoft’s AI assistant, Copilot, to achieve their goals.
This event series to help nonprofits obtain Copilot skills is made possible by generous support from Microsoft.
What You’ll Learn in Part 2:
Explore real-world nonprofit use cases and success stories.
Participate in live demonstrations and a hands-on activity to see how you can use Microsoft 365 Copilot in your own work!
4. Testing Your Code in the Judge System
Test your code online in the SoftUni Judge system:
https://judge.softuni.org/Contests/3294
6. Table of Contents
1. What Is a String?
2. Manipulating Strings
3. Building and Modifying Strings
Using StringBuilder Class
Why Concatenation Is a Slow
Operation?
7
8. Strings are sequences of characters (texts)
The string data type in Java
Declared by the String
Strings are enclosed in double quotes:
What Is a String?
9
String text = "Hello, Java";
9. Strings are immutable (read-only)
sequences of characters
Accessible by index (read-only)
Strings use Unicode
(can use most alphabets, e.g. Arabic)
Strings Are Immutable
10
String str = "Hello, Java";
char ch = str.charAt(2); // l
String greeting = "你好"; // (lí-hó) Taiwanese
10. Initializing from a string literal:
Reading a string from the console:
Converting a string from and to a char array:
Initializing a String
11
String str = "Hello, Java";
String name = sc.nextLine();
System.out.println("Hi, " + name);
String str = new String(new char[] {'s', 't', 'r'});
char[] charArr = str.toCharArray();
// ['s', 't', 'r']
12. Concatenating
Use the + or the += operators
Use the concat() method
String greet = "Hello, ";
String name = "John";
String result = greet.concat(name);
System.out.println(result); // "Hello, John"
String text = "Hello, ";
text += "John"; // "Hello, John"
String text = "Hello" + ", " + "world!";
// "Hello, world!"
13
13. Joining Strings
String.join("", …) concatenates strings
Or an array/list of strings
Useful for repeating a string
14
String t = String.join("", "con", "ca", "ten", "ate");
// "concatenate"
String s = "abc";
String[] arr = new String[3];
for (int i = 0; i < arr.length; i++) { arr[i] = s; }
String repeated = String.join("", arr); // "abcabcabc"
14. Read an array from strings
Repeat each word n times, where n is the length of the word
Problem: Repeat Strings
15
hi abc add hihiabcabcabcaddaddadd
work workworkworkwork
ball ballballballball
15. String[] words = sc.nextLine().split(" ");
List<String> result = new ArrayList<>();
for (String word : words) {
result.add(repeat(word, word.length()));
}
System.out.println(String.join("", result));
Solution: Repeat Strings (1)
16
16. static String repeat(String s, int repeatCount) {
String[] repeatArr = new String[repeatCount];
for (int i = 0; i < repeatCount; i++) {
repeatArr[i] = s;
}
return String.join("", repeatArr);
}
Solution: Repeat Strings (2)
17
17. Substring
substring(int startIndex, int endIndex)
substring(int startIndex)
18
String text = "My name is John";
String extractWord = text.substring(11);
System.out.println(extractWord); // John
String card = "10C";
String power = card.substring(0, 2);
System.out.println(power); // 10
18. Searching (1)
indexOf() - returns the first match index or -1
lastIndexOf() - finds the last occurrence
19
String fruits = "banana, apple, kiwi, banana, apple";
System.out.println(fruits.lastIndexOf("banana")); // 21
System.out.println(fruits.lastIndexOf("orange")); // -1
String fruits = "banana, apple, kiwi, banana, apple";
System.out.println(fruits.indexOf("banana")); // 0
System.out.println(fruits.indexOf("orange")); // -1
19. Searching (2)
contains() - checks whether one string
contains another
20
String text = "I love fruits.";
System.out.println(text.contains("fruits"));
// true
System.out.println(text.contains("banana"));
// false
20. You are given a remove word and a text
Remove all substrings that are equal to the remove word
Problem: Substring
21
ice
kicegiceiceb
kgb
abc
tabctqw
ttqw
key
keytextkey
text
word
wordawordbwordc
abc
21. String key = sc.nextLine();
String text = sc.nextLine();
int index = text.indexOf(key);
while (index != -1) {
text = text.replace(key, "");
index = text.indexOf(key);
}
System.out.println(text);
Solution: Substring
22
22. Splitting
Split a string by given pattern
Split by multiple separators
23
String text = "Hello, I am John.";
String[] words = text.split("[, .]+");
// "Hello", "I", "am", "John"
String text = "Hello, [email protected], you have been
using [email protected] in your registration";
String[] words = text.split(", ");
// words[]: "Hello","[email protected]","you have been…"
24. You are given a string of banned words and a text
Replace all banned words in the text with asterisks (*)
Problem: Text Filter
25
Linux, Windows
It is not Linux, it is GNU/Linux. Linux is merely
the kernel, while GNU adds the functionality...
It is not *****, it is GNU/*****. ***** is merely
the kernel, while GNU adds the functionality...
25. String[] banWords = sc.nextLine().split(", ");
String text = sc.nextLine();
for (String banWord : banWords) {
if (text.contains(banWord)) {
String replacement = repeatStr("*",
banWord.length());
text = text.replace(banWord, replacement);
}
}
System.out.println(text);
Solution: Text Filter (1)
26
contains(…) checks if string
contains another string
replace() a word with a sequence
of asterisks of the same length
26. private static String repeatStr(String str, int length) {
String replacement = "";
for (int i = 0; i < length; i++) {
replacement += str;
}
return replacement;
}
Solution: Text Filter (2)
27
29. StringBuilder keeps a buffer space, allocated in advance
Do not allocate memory for
most operations performance
StringBuilder: How It Works?
H e l l o , J a v a
StringBuilder:
length() = 10
capacity() = 16
Capacity
used buffer
(Length)
unused
buffer
30
30. Using StringBuilder Class
Use the StringBuilder to build/modify strings
31
StringBuilder sb = new StringBuilder();
sb.append("Hello, ");
sb.append("John! ");
sb.append("I sent you an email.");
System.out.println(sb.toString());
// Hello, John! I sent you an email.
31. Concatenation vs. StringBuilder (1)
Concatenating strings is a slow operation
because each iteration creates a new string
32
Tue Jul 10 13:57:20 EEST 2021
Tue Jul 10 13:58:07 EEST 2021
System.out.println(new Date());
String text = "";
for (int i = 0; i < 1000000; i++)
text += "a";
System.out.println(new Date());
32. Concatenation vs. StringBuilder (2)
Using StringBuilder
33
Tue Jul 10 14:51:31 EEST 2021
Tue Jul 10 14:51:31 EEST 2021
System.out.println(new Date());
StringBuilder text = new
StringBuilder();
for (int i = 0; i < 1000000; i++)
text.append("a");
System.out.println(new Date());
33. StringBuilder Methods (1)
append() - appends the string representation
of the argument
length() - holds the length of the string in the buffer
setLength(0) - removes all characters
34
StringBuilder sb = new StringBuilder();
sb.append("Hello Peter, how are you?");
sb.append("Hello Peter, how are you?");
System.out.println(sb.length()); // 25
34. StringBuilder Methods (2)
charAt(int index) - returns char on index
insert(int index, String str) –
inserts a string at the specified character position
35
StringBuilder sb = new StringBuilder();
sb.append("Hello Peter, how are you?");
System.out.println(sb.charAt(1)); // e
sb.insert(11, " Ivanov");
System.out.println(sb);
// Hello Peter Ivanov, how are you?
35. StringBuilder Methods (3)
replace(int startIndex, int endIndex,
String str) - replaces the chars in a substring
toString() - converts the value of this instance
to a String
36
String text = sb.toString();
System.out.println(text);
// Hello George, how are you?
sb.append("Hello Peter, how are you?");
sb.replace(6, 11, "George");
38. …
…
…
Next Steps
Join the SoftUni "Learn To Code" Community
Access the Free Coding Lessons
Get Help from the Mentors
Meet the Other Learners
https://softuni.org
Editor's Notes
#2: Hello, I am Svetlin Nakov from SoftUni (the Software University). Together with my colleague George Georgiev, we shall teach this free Java Foundations course, which covers important concepts from Java programming, such as arrays, lists, methods, strings, classes, objects and exceptions, and prepares you for the "Java Foundations" official exam from Oracle.In this lesson your instructor George will demonstrate how to use strings to process text in Java. Working with text data in Java involves the use of the String data type, which contains an immutable sequence of text characters, and the StringBuilder type, which allows efficiently creating large texts. The String class in Java allows searching in a string, inserting and deleting substrings from a string, splitting a string by certain delimiter, joining several strings into a larger string and many other text processing operations.Let's learn them through live coding examples, and later solve some hands-on exercises to gain practical experience.
Are you ready? Let's start!
#3: Before the start, I would like to introduce your course instructors: Svetlin Nakov and George Georgiev, who are experienced Java developers, senior software engineers and inspirational tech trainers.
They have spent thousands of hours teaching programming and software technologies and are top trainers from SoftUni.
I am sure you will like how they teach programming.
#4: Most of this course will be taught by George Georgiev, who is a senior software engineer with many years of experience with Java, JavaScript and C++.
George enjoys teaching programming very much and is one of the top trainers at the Software University, having delivered over 300 technical training sessions on the topics of data structures and algorithms, Java essentials, Java fundamentals, C++ programming, C# development and many others.
I have no doubt you will benefit greatly from his lessons, as he always does his best to explain the most challenging concepts in a simple and fun way.
#5: Before we dive into the course, I want to show you the SoftUni judge system, where you can get instant feedback for your exercise solutions.
SoftUni Judge is an automated system for code evaluation. You just send your code for a certain coding problem and the system will tell you whether your solution is correct or not and what exactly is missing or wrong.I am sure you will love the judge system, once you start using it!
#6: // Solution to problem "01. Student Information".
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
int age = Integer.parseInt(sc.nextLine());
double grade = Double.parseDouble(sc.nextLine());
System.out.printf("Name: %s, Age: %d, Grade: %.2f",
name, age, grade);
}
}
#7: In this section, we shall learn how to process text in Java.
Working with text data in Java involves the use of the String data type, which contains a sequence of text characters, and the StringBuilder type, which allows efficient generation of large texts. The standard Java API allows searching in a string, inserting and deleting substrings from a string, splitting a string by certain delimiter, joining several strings into a larger string and many other operations.
Let's learn how to use strings in Java and how to process text data. Remember that learning a skill is only possible through practice, and you should write solutions to the hands-on exercises, coming with this course topic. Exercises are quite more important than the theory. If you skip them, you can't develop your skills.
Now, it's time to invite George to teach this topic.
#40: Did you like this lesson? Do you want more?Join the learners' community at softuni.org.Subscribe to my YouTube channel to get more free video tutorials on coding and software development.
Get free access to the practical exercises and the automated judge system for this coding lesson.Get free help from mentors and meet other learners.Join now! It's free.SOFTUNI.ORG