<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Josafá Marengo</title>
    <description>The latest articles on DEV Community by Josafá Marengo (@josafamarengo).</description>
    <link>https://dev.to/josafamarengo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F848498%2F11bb1617-59d7-44b8-ad3c-5fbd280949bb.jpg</url>
      <title>DEV Community: Josafá Marengo</title>
      <link>https://dev.to/josafamarengo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/josafamarengo"/>
    <language>en</language>
    <item>
      <title>A evolução do switch no Java: do statement ao pattern matching</title>
      <dc:creator>Josafá Marengo</dc:creator>
      <pubDate>Sun, 06 Apr 2025 00:00:00 +0000</pubDate>
      <link>https://dev.to/josafamarengo/a-evolucao-do-switch-no-java-do-statement-ao-pattern-matching-2op9</link>
      <guid>https://dev.to/josafamarengo/a-evolucao-do-switch-no-java-do-statement-ao-pattern-matching-2op9</guid>
      <description>&lt;p&gt;O comando switch evoluiu de uma estrutura básica para um recurso moderno com pattern matching. Veja como essa transformação torna o código Java mais conciso, seguro e expressivo.&lt;/p&gt;

&lt;p&gt;A evolução do &lt;strong&gt;switch&lt;/strong&gt; no &lt;strong&gt;Java&lt;/strong&gt; ilustra como a linguagem vem se adaptando para escrever código mais conciso, seguro e expressivo. Inicialmente concebido como um simples mecanismo de controle de fluxo, o &lt;strong&gt;switch&lt;/strong&gt; passou por diversas transformações – do tradicional &lt;strong&gt;switch statement&lt;/strong&gt; ao moderno &lt;strong&gt;switch expression&lt;/strong&gt; com &lt;strong&gt;pattern matching&lt;/strong&gt; – ampliando significativamente suas capacidades e flexibilidade.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Switch Statement Clássico
&lt;/h2&gt;

&lt;p&gt;Nas versões iniciais do &lt;strong&gt;Java&lt;/strong&gt;, o &lt;strong&gt;switch&lt;/strong&gt; era utilizado para testar uma variável contra um conjunto fixo de valores constantes. Ele aceitava tipos primitivos (como &lt;code&gt;int&lt;/code&gt;, &lt;code&gt;char&lt;/code&gt;), &lt;code&gt;enum&lt;/code&gt; e, posteriormente, &lt;code&gt;String&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Embora funcional, exigia muito código repetitivo e atenção com o uso do break, que evitava o fall through – quando a execução continua no próximo case mesmo após encontrar um correspondente.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;nivel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"intermediário"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;switch&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nivel&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="s"&gt;"iniciante"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Você está começando."&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="s"&gt;"intermediário"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Você já tem alguma experiência."&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="s"&gt;"avançado"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Você domina a linguagem!"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;default&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Nível desconhecido."&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Problemas comuns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Esquecer do break, gerando bugs difíceis de rastrear.&lt;/li&gt;
&lt;li&gt;Sintaxe extensa e repetitiva.&lt;/li&gt;
&lt;li&gt;Falta de suporte a retorno direto de valores.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Switch Expression (Java 12+ / Java 14)
&lt;/h2&gt;

&lt;p&gt;A partir do &lt;strong&gt;Java 12&lt;/strong&gt;, e estabilizado no &lt;strong&gt;Java 14&lt;/strong&gt; com a &lt;strong&gt;JEP 361&lt;/strong&gt;, foi introduzido o conceito de switch expressions. Com ele, o switch deixa de ser apenas um comando e passa a ser também uma expressão que retorna valores.&lt;/p&gt;

&lt;p&gt;Vantagens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sintaxe concisa: -&amp;gt; elimina o break e evita fall through.&lt;/li&gt;
&lt;li&gt;Retorno de valores: pode-se armazenar diretamente o resultado do switch.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;mes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;nomeMes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;switch&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mes&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"Janeiro"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"Fevereiro"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"Março"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"Mês inválido"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;};&lt;/span&gt;
&lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"O mês é: "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;nomeMes&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Também é possível usar blocos para lógica mais complexa:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;numero&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;resultado&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;switch&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numero&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"Baixo"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Faixa intermediária"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="n"&gt;yield&lt;/span&gt; &lt;span class="s"&gt;"Médio"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"Alto"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Pattern Matching para Switch (Java 17+ / Java 21)
&lt;/h2&gt;

&lt;p&gt;A terceira etapa da evolução é ainda mais poderosa: o pattern matching para switch, introduzido em preview no &lt;strong&gt;Java 17&lt;/strong&gt; e estabilizado no &lt;strong&gt;Java 21&lt;/strong&gt; com a &lt;strong&gt;JEP 441&lt;/strong&gt;. Essa funcionalidade transforma o switch em uma ferramenta capaz de verificar padrões de tipo, extrair variáveis, e aplicar condições diretamente nos cases.&lt;/p&gt;

&lt;p&gt;Novos recursos com pattern matching:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Testar tipos dinamicamente: sem necessidade de instanceof + cast.&lt;/li&gt;
&lt;li&gt;Extração de variáveis inline: o valor é automaticamente atribuído ao tipo correto.&lt;/li&gt;
&lt;li&gt;Guards (when): permitem adicionar condições extras.&lt;/li&gt;
&lt;li&gt;Tratamento de null diretamente.&lt;/li&gt;
&lt;li&gt;Desconstrução de records.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Exemplo prático:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;Object&lt;/span&gt; &lt;span class="n"&gt;valor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;42&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;resultado&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;switch&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;valor&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nc"&gt;Integer&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"Número grande"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nc"&gt;Integer&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"Número pequeno ou médio"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="n"&gt;when&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;length&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"Texto longo"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"Texto curto"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"Valor nulo"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"Outro tipo"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;};&lt;/span&gt;
&lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Resultado: "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;resultado&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com record:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="n"&gt;record&lt;/span&gt; &lt;span class="nf"&gt;Pessoa&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;nome&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;idade&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{}&lt;/span&gt;

&lt;span class="nc"&gt;Object&lt;/span&gt; &lt;span class="n"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Pessoa&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Ana"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;descricao&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;switch&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nf"&gt;Pessoa&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;nome&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;idade&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="n"&gt;when&lt;/span&gt; &lt;span class="n"&gt;idade&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;nome&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;" é maior de idade."&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nf"&gt;Pessoa&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;nome&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;idade&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;nome&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;" é menor de idade."&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"Tipo desconhecido."&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Comparação de Sintaxe:
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Recurso&lt;/th&gt;
&lt;th&gt;Disponível a partir de&lt;/th&gt;
&lt;th&gt;Sintaxe mais enxuta&lt;/th&gt;
&lt;th&gt;Retorna valor&lt;/th&gt;
&lt;th&gt;Testa tipo com guard&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Switch Statement Clássico&lt;/td&gt;
&lt;td&gt;Java 1&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Switch Expression&lt;/td&gt;
&lt;td&gt;Java 12/14&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pattern Matching&lt;/td&gt;
&lt;td&gt;Java 17/21&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Quando usar cada um?
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Situação&lt;/th&gt;
&lt;th&gt;Recomendação&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Precisa apenas executar comandos simples?&lt;/td&gt;
&lt;td&gt;switch statement pode ser suficiente.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deseja retornar um valor com clareza e segurança?&lt;/td&gt;
&lt;td&gt;Prefira switch expression.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Precisa testar tipos de objetos, aplicar condições e extrair dados?&lt;/td&gt;
&lt;td&gt;Use switch com pattern matching.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A transformação do switch no Java reflete o compromisso da linguagem com a evolução sem perder compatibilidade. De uma estrutura limitada e propensa a erros, o switch se tornou uma ferramenta moderna, expressiva e versátil.&lt;/p&gt;

</description>
      <category>java</category>
      <category>programming</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>18 Métodos de Arrays em JavaScript que Você Deveria Saber</title>
      <dc:creator>Josafá Marengo</dc:creator>
      <pubDate>Wed, 10 Jul 2024 21:56:36 +0000</pubDate>
      <link>https://dev.to/josafamarengo/18-metodos-de-arrays-em-javascript-que-voce-deveria-saber-30eb</link>
      <guid>https://dev.to/josafamarengo/18-metodos-de-arrays-em-javascript-que-voce-deveria-saber-30eb</guid>
      <description>&lt;p&gt;Os arrays são uma parte essencial da programação em JavaScript, proporcionando uma maneira poderosa de armazenar e manipular coleções de dados. Neste artigo, vamos explorar dezoito métodos fundamentais de arrays que todo programador JavaScript deveria conhecer para escrever código mais eficiente e claro.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Push
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;arr.push(..element)&lt;/code&gt; adiciona um novo elemento ao final de um array e retorna o novo comprimento do array. Este método altera o array original.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;element1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;element2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="err"&gt;…&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// arr agora é [1, 2, 3, 4]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. Pop
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;arr.pop()&lt;/code&gt; remove o último elemento de um array e retorna o elemento removido. Este método também altera o array original e seu comprimento.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pop&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// arr agora é [1, 2, 3]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Shift
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;arr.shift()&lt;/code&gt; remove o primeiro elemento de um array e retorna o elemento removido. Este método também altera o comprimento do array original.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// arr agora é [2, 3, 4]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Unshift
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;arr.unshift(elements)&lt;/code&gt; adiciona um ou mais elementos ao início de um array e retorna o novo comprimento do array.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;unshift&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;item1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;item2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="err"&gt;…&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;unshift&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// arr agora é [1, 2, 3, 4]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  5. Splice
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;arr.splice()&lt;/code&gt; modifica o array original removendo, substituindo ou adicionando elementos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;splice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;start&lt;/span&gt;&lt;span class="p"&gt;[,&lt;/span&gt; &lt;span class="nx"&gt;deleteCount&lt;/span&gt;&lt;span class="p"&gt;[,&lt;/span&gt; &lt;span class="nx"&gt;item1&lt;/span&gt;&lt;span class="p"&gt;[,&lt;/span&gt; &lt;span class="nx"&gt;item2&lt;/span&gt;&lt;span class="p"&gt;[,&lt;/span&gt; &lt;span class="p"&gt;...]]]])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;splice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// arr agora é [1, 3, 4]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  6. Slice
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;arr.slice()&lt;/code&gt; seleciona uma parte de um array e retorna um novo array com os itens copiados do índice de início até o fim. O array original não é alterado.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;slice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;start&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;end&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;newArr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;slice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// newArr é [2, 3]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  7. Includes
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;arr.includes(item, index)&lt;/code&gt; verifica se o item está presente no array a partir do índice fornecido e retorna &lt;code&gt;true&lt;/code&gt; se encontrado, caso contrário, retorna &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  8. forEach
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;arr.forEach()&lt;/code&gt; executa uma função fornecida uma vez para cada elemento do array.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;callback&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;num&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;num&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt; &lt;span class="c1"&gt;// imprime 1, 2, 3, 4&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  9. Join
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;arr.join(separator)&lt;/code&gt; cria uma string com todos os elementos de um array concatenados, separados por um delimitador específico.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;separator&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;-&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// "1-2-3-4"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  10. toString
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;arr.toString()&lt;/code&gt; converte um array em uma string e retorna o resultado.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// "1,2,3,4"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  11. Map
&lt;/h2&gt;

&lt;p&gt;O método map() chama uma função callback em cada elemento do array original e retorna um novo array com os resultados. Este é um método não mutante.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;  &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;callback&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;currentValue&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Retorna um novo valor&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;doubled&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;num&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;num&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// [2, 4, 6, 8]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  12. Reduce
&lt;/h2&gt;

&lt;p&gt;O método reduce() aplica uma função a um acumulador e cada elemento do array (da esquerda para a direita) para reduzir a um único valor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;reduce&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;callback&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;accumulator&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;currentValue&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Retorna o valor acumulado&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="nx"&gt;initialValue&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;sum&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;reduce&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;acc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;num&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;acc&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;num&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 10&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  13. Filter
&lt;/h2&gt;

&lt;p&gt;O método filter() cria um novo array com todos os elementos que passaram no teste implementado pela função fornecida.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;callback&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Retorna true para manter o elemento&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;even&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;num&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;num&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// [2, 4]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  14. Sort
&lt;/h2&gt;

&lt;p&gt;O método sort() organiza os elementos de um array em ordem crescente ou conforme a função de comparação fornecida.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="nx"&gt;compareFunction&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// [1, 2, 3, 4]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  15. Find
&lt;/h2&gt;

&lt;p&gt;O método find() retorna o primeiro elemento no array que satisfaz a função de teste fornecida.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;callback&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Retorna true para encontrar o elemento&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;found&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;num&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;num&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 3&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  16. IndexOf
&lt;/h2&gt;

&lt;p&gt;O método indexOf() retorna o primeiro índice no qual um dado elemento pode ser encontrado no array, ou -1 se o elemento não estiver presente.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;indexOf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;searchElement&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;fromIndex&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;index&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;indexOf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  17. Some
&lt;/h2&gt;

&lt;p&gt;O método some() testa se ao menos um elemento no array passa na função de teste implementada.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;some&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;callback&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Retorna true se pelo menos um elemento passar no teste&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;hasEven&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;some&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;num&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;num&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  18. Concat
&lt;/h2&gt;

&lt;p&gt;O método concat() é usado para mesclar dois ou mais arrays.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;concat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;array2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;array3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;...,&lt;/span&gt; &lt;span class="nx"&gt;arrayN&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;arr1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;arr2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;merged&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;arr1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;concat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;arr2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// [1, 2, 3, 4]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esses métodos são fundamentais para trabalhar com arrays em JavaScript. Dominar esses métodos permitirá que você manipule dados de forma mais eficiente e escreva códigos mais limpos e legíveis. Feliz codificação!&lt;/p&gt;

&lt;p&gt;Referências:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://javascript.plainenglish.io/10-important-javascript-array-methods-you-must-know-bd791cbd6e43" rel="noopener noreferrer"&gt;10 Important JavaScript Array Methods You Must Know&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/weekly-webtips/top-10-javascript-array-methods-all-should-know-253721609187" rel="noopener noreferrer"&gt;Lists of Top 10 JavaScript array methods a beginner Js developer should know&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>javascript</category>
      <category>programming</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Concurso Caixa: Sua Porta De Entrada Para A Carreira De TI</title>
      <dc:creator>Josafá Marengo</dc:creator>
      <pubDate>Wed, 28 Feb 2024 16:44:12 +0000</pubDate>
      <link>https://dev.to/josafamarengo/concurso-caixa-sua-porta-de-entrada-para-a-carreira-de-ti-3jnh</link>
      <guid>https://dev.to/josafamarengo/concurso-caixa-sua-porta-de-entrada-para-a-carreira-de-ti-3jnh</guid>
      <description>&lt;p&gt;Se você está em busca de uma carreira sólida e desafiadora na área de Tecnologia da Informação (TI), o Concurso Público da Caixa Econômica Federal de 2024 pode ser a oportunidade que você estava esperando. Com 2 mil vagas(1600 + 400 de Cadastro de Reserva) em 7 estados: Amazonas, Goiás, Minas Gerais, Pernambuco, Rio de Janeiro, Rio Grande do Sul, São Paulo e o Distrito Federal, este concurso oferece uma chance única de ingressar no maior banco público da América Latina e contribuir para a execução das principais políticas públicas do país.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cargo
&lt;/h2&gt;

&lt;p&gt;Com um salário inicial de R$ 3.762,00, além de uma série de benefícios atrativos, como assistência à saúde, previdência complementar, participação nos lucros e resultados, auxílio-alimentação e refeição, vale-transporte e auxílio-creche, esse concurso é uma excelente oportunidade para quem busca a sua primeira vaga na carreira de TI, principalmente pelo fato de exigir apenas o ensino médio.&lt;/p&gt;

&lt;h3&gt;
  
  
  Progressão Salarial
&lt;/h3&gt;

&lt;p&gt;A Caixa Econômica Federal oferece um plano de cargos e salários que contempla diversas carreiras, com remunerações variadas de acordo com o cargo e a carga horária. Para o cargo de Técnico Bancário Novo na área de Tecnologia da Informação, por exemplo, a remuneração pode chegar a R$ 10.985,00.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gratificações
&lt;/h3&gt;

&lt;p&gt;O empregado da Caixa Econômica Federal (CEF) também recebe um valor a mais no vencimento básico ao exercer uma função gratificada ou cargo em comissão. Confira abaixo os valores atualizados:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Jornada de 06 horas – Vigência 01/09/2023&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Nível&lt;/th&gt;
&lt;th&gt;Piso&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;T2 – N8&lt;/td&gt;
&lt;td&gt;R$ 15.707,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T2 – N7&lt;/td&gt;
&lt;td&gt;R$ 13.626,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T2 – N6&lt;/td&gt;
&lt;td&gt;R$ 11.830,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T2 – N5&lt;/td&gt;
&lt;td&gt;R$ 10.267,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T2 – N4&lt;/td&gt;
&lt;td&gt;R$ 8.905,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T2 – N3&lt;/td&gt;
&lt;td&gt;R$ 7.730,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T2 – N2&lt;/td&gt;
&lt;td&gt;R$ 6.710,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T2 – N1&lt;/td&gt;
&lt;td&gt;R$ 5.820,00&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Jornada de 08 horas – Vigência 01/09/2023&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Nível&lt;/th&gt;
&lt;th&gt;Piso&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;T1 – N13&lt;/td&gt;
&lt;td&gt;R$ 57.036,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1 – N12&lt;/td&gt;
&lt;td&gt;R$ 49.911,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1 – N11&lt;/td&gt;
&lt;td&gt;R$ 43.307,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1 – N10&lt;/td&gt;
&lt;td&gt;R$ 37.581,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1 – N9&lt;/td&gt;
&lt;td&gt;R$ 32.606,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1 – N8&lt;/td&gt;
&lt;td&gt;R$ 28.299,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1 – N6&lt;/td&gt;
&lt;td&gt;R$ 21.303,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1 – N5&lt;/td&gt;
&lt;td&gt;R$ 18.487,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1 – N4&lt;/td&gt;
&lt;td&gt;R$ 16.041,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1 – N3&lt;/td&gt;
&lt;td&gt;R$ 13.924,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1 – N2&lt;/td&gt;
&lt;td&gt;R$ 12.081,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T1 – N1&lt;/td&gt;
&lt;td&gt;R$ 10.484,00&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;*Valor do Piso das Funções Gratificadas com suas variantes de carga horária de 6h e 8h&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Inscrições
&lt;/h2&gt;

&lt;p&gt;As inscrições para o Concurso Caixa 2024 podem feitas no site da  &lt;a href="https://concursos.cesgranrio.org.br/portal/avaliacoes/11" rel="noopener noreferrer"&gt;Fundação Cesgranrio&lt;/a&gt;   &lt;strong&gt;a partir das 10h do dia 29 de fevereiro e seguem abertas até as 16h do dia 25 de março.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Os candidatos interessados deverão preencher o formulário de inscrição disponível no site dentro desse prazo e deverá escolher o cargo, polo/Macropolo/UF de opção.&lt;/p&gt;

&lt;p&gt;Para o cargo Técnico Bancário Novo – Tecnologia da Informação, além do Polo/Macropolo/UF, o candidato deverá optar pela cidade de realização das provas.&lt;/p&gt;

&lt;p&gt;A taxa de inscrição é de &lt;strong&gt;R$ 50,00&lt;/strong&gt; para o cargo de Técnico Bancário Novo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Isenção de taxa
&lt;/h3&gt;

&lt;p&gt;Para ter direito à isenção total do pagamento da taxa de inscrição, o candidato deve cumprir um dos seguintes requisitos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Comprovar inscrição no Cadastro Único para Programas Sociais do Governo Federal, por meio de indicação do Número de Identificação Social (NIS);&lt;/li&gt;
&lt;li&gt;Ser membro de “família de baixa renda”, conforme definido pela Lei 13.656, de 30 de abril de 2018, e pelo Decreto nº 6.135, de 26 de junho de 2007;&lt;/li&gt;
&lt;li&gt;Ser doador de medula óssea em entidades reconhecidas pelo Ministério da Saúde, conforme Lei nº 13.656, de 30 de abril de 2018.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Os candidatos que se enquadram em uma das situações descritas podem solicitar a isenção do pagamento da taxa de inscrição durante o período de &lt;strong&gt;29/02 a 07/03&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Data da prova
&lt;/h2&gt;

&lt;p&gt;Prevista para acontecer no dia &lt;strong&gt;26 de maio.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O tempo para a realização das provas será de 5 horas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Etapas de prova
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Prova objetiva
&lt;/h3&gt;

&lt;p&gt;A prova será composta por &lt;strong&gt;60 questões de múltipla escolha&lt;/strong&gt;, sendo 25 de Conhecimentos Básicos e 35 de Conhecimentos Específicos e terá duração de 5 horas.&lt;/p&gt;

&lt;p&gt;Para conhecimentos básicos, a prova será constituída das seguintes disciplinas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Língua Portuguesa: 5 questões;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Língua Inglesa: 5 questões;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Matemática Financeira: 5 questões;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Noções de Probabilidade e Estatística: 5 questões;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Comportamentos éticos e Compliance: 5 questões.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A prova de conhecimentos específicos será composta pelas seguintes disciplinas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tecnologia da Informação: 30 questões:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;1 - Engenharia de software:

&lt;ul&gt;
&lt;li&gt;Processos de software: Processo Unificado (UP): conceitos gerais, disciplinas, fases, papéis, atividades e artefatos;&lt;/li&gt;
&lt;li&gt;UX; Análise e projeto orientados a objetos;&lt;/li&gt;
&lt;li&gt;A linguagem UML: modelos e diagramas;&lt;/li&gt;
&lt;li&gt;Padrões de projeto; engenharia de requisitos.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;2 - Estrutura de dados e algoritmos:

&lt;ul&gt;
&lt;li&gt;Busca sequencial e busca binária sobre &lt;em&gt;arrays&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Ordenação (método da bolha, ordenação por seleção, ordenação por inserção);&lt;/li&gt;
&lt;li&gt;Lista encadeada;&lt;/li&gt;
&lt;li&gt;Pilha;&lt;/li&gt;
&lt;li&gt;Fila;&lt;/li&gt;
&lt;li&gt;Noções de árvore binária.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;3 - Linguagens de programação:

&lt;ul&gt;
&lt;li&gt;Linguagens orientadas a objeto e procedurais;&lt;/li&gt;
&lt;li&gt;Java SE 21;&lt;/li&gt;
&lt;li&gt;JEE 8, Microprofile, C# 12, .NET, AngularJS; Angular;&lt;/li&gt;
&lt;li&gt;TypeScript 4.X;&lt;/li&gt;
&lt;li&gt;Javascript;&lt;/li&gt;
&lt;li&gt;Python 3.9 (bibliotecas Pandas, NumPy, SciPy, Matplotlib, Tensorflow, PyTorch e Scikit-learn);&lt;/li&gt;
&lt;li&gt;Scala;&lt;/li&gt;
&lt;li&gt;R;&lt;/li&gt;
&lt;li&gt;Kotlin;&lt;/li&gt;
&lt;li&gt;Objective-C;&lt;/li&gt;
&lt;li&gt;Flutter;&lt;/li&gt;
&lt;li&gt;Swift, Cobol.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;4 - Desenvolvimento de software para a Web:

&lt;ul&gt;
&lt;li&gt;Sistemas distribuídos e microsserviços;&lt;/li&gt;
&lt;li&gt;Arquitetura e padrões de projeto Java EE 8;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Servlets&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;JSF;&lt;/li&gt;
&lt;li&gt;JSP;&lt;/li&gt;
&lt;li&gt;Ajax;&lt;/li&gt;
&lt;li&gt;Interoperabilidade de sistemas;&lt;/li&gt;
&lt;li&gt;SOA e Web Services (&lt;em&gt;Quarkus)&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Padrões REST, Padrões HTML 4.01, HTTP response Status code, XHTML 1.0, XML, XSLT, UDDI, WSDL e SOAP.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;5 - Teste e qualidade de software:

&lt;ul&gt;
&lt;li&gt;Controle da qualidade estático: revisão, inspeção, medição estática, análise estática;&lt;/li&gt;
&lt;li&gt;Princípios e técnicas de teste de software: teste de unidade, teste de integração, teste de regressão, teste alfa, teste beta, teste de segurança, teste de aceitação e de aprovação;&lt;/li&gt;
&lt;li&gt;Desenvolvimento dirigido por testes.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;6 - Bancos de dados:

&lt;ul&gt;
&lt;li&gt;Modelagem conceitual de dados: a abordagem entidade-relacionamento;&lt;/li&gt;
&lt;li&gt;Modelo relacional de dados(conceitos básicos e normalização);&lt;/li&gt;
&lt;li&gt;Conceitos de banco de dados e sistemas gerenciadores de bancos de dados
(SGBD);&lt;/li&gt;
&lt;li&gt;Linguagem SQL;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Data Warehouse&lt;/em&gt; – modelagem física de dados: tabelas, índices, particionamento,
desempenho;&lt;/li&gt;
&lt;li&gt;Modelagem conceitual para &lt;em&gt;data warehouses&lt;/em&gt;, dados multidimensionais;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Big data&lt;/em&gt;: Fundamentos, técnicas de preparação e apresentação de dados;&lt;/li&gt;
&lt;li&gt;Soluções de big data.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;7 - Agilidade:

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Lean&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Lean IT&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Frameworks&lt;/em&gt; (XP; SCRUM; Kanban; SAFe SA; Nexus);&lt;/li&gt;
&lt;li&gt;Ágil em escala e ágil escalado;&lt;/li&gt;
&lt;li&gt;Ferramentas;&lt;/li&gt;
&lt;li&gt;Artefatos, métricas e indicadores ágeis;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Management&lt;/em&gt; 3.0;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Lean UX&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Design Thinking&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;História de Usuário;&lt;/li&gt;
&lt;li&gt;O &lt;em&gt;backlog&lt;/em&gt; do produto e as técnicas para priorização (Moscow, Scorecard, BUC, Testes de Suposição e Valor de negócio x risco);&lt;/li&gt;
&lt;li&gt;Técnica para estimativa de escopo (&lt;em&gt;planning poker&lt;/em&gt;, &lt;em&gt;Story points&lt;/em&gt;, enquete, &lt;em&gt;T-shirt sizing&lt;/em&gt;);&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;kanban&lt;/em&gt; e o fluxo de valor;&lt;/li&gt;
&lt;li&gt;Técnicas/cerimônias para colaboração e integração do time ágil (SoS, PoSinc, &lt;em&gt;planning&lt;/em&gt;, review, retrospectiva, &lt;em&gt;daily&lt;/em&gt;, &lt;em&gt;PI Plannig&lt;/em&gt;);&lt;/li&gt;
&lt;li&gt;Integração contínua;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Deploy&lt;/em&gt; contínuo;&lt;/li&gt;
&lt;li&gt;Entrega contínua;&lt;/li&gt;
&lt;li&gt;Tratamento de débito técnicos e incidentes;&lt;/li&gt;
&lt;li&gt;Arquitetura e Qualidade ágeis;&lt;/li&gt;
&lt;li&gt;DevSecOps.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;8 - Organização e arquitetura de computadores:

&lt;ul&gt;
&lt;li&gt;Arquitetura básica de um computador: CPU e hierarquia de memória;&lt;/li&gt;
&lt;li&gt;Armazenamento e representação de dados: base binária e complemento a dois, ponto
flutuante e caracteres;&lt;/li&gt;
&lt;li&gt;Armazenamento e representação de instruções;&lt;/li&gt;
&lt;li&gt;Modos de endereçamento;&lt;/li&gt;
&lt;li&gt;Conjunto típico de instruções de uma CPU;&lt;/li&gt;
&lt;li&gt;Subsistema de entrada/saída e dispositivos de armazenamento secundário.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;9 - Sistemas Operacionais:

&lt;ul&gt;
&lt;li&gt;Funções e estrutura de um sistema operacional;&lt;/li&gt;
&lt;li&gt;Processos: conceitos básicos, comunicação, sincronização e escalonamento;&lt;/li&gt;
&lt;li&gt;Gerência de memória: partições fixas e variáveis, realocação, memória virtual,
&lt;em&gt;swapping&lt;/em&gt;, sistemas de arquivos;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Windows&lt;/em&gt; 10 (versões de 32 e de 64 bits) e ambiente &lt;em&gt;Linux&lt;/em&gt; (SUSE SLES 15 SP2) e
IBM z/OS.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;10 - Arquiteturas de software:

&lt;ul&gt;
&lt;li&gt;Arquitetura em camadas, arquitetura MVC, arquitetura orientada a serviços;&lt;/li&gt;
&lt;li&gt;Arquitetura monolítica, arquitetura microsserviço, &lt;em&gt;micro front end&lt;/em&gt;, Nuvem pública e privada, métricas e estimativas de software, análise por pontos de função: conceitos básicos e aplicações;&lt;/li&gt;
&lt;li&gt;Estratégias de migração de aplicações para o ambiente de nuvem, Governança, Computação &lt;em&gt;Serverless&lt;/em&gt;, Segurança Compartilhada.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;11 - Gerência de configuração:

&lt;ul&gt;
&lt;li&gt;Conceitos e práticas;&lt;/li&gt;
&lt;li&gt;Uso de ferramentas de gerência de configuração;&lt;/li&gt;
&lt;li&gt;Controle de defeitos: conceitos e práticas.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;12 - Portais corporativos:

&lt;ul&gt;
&lt;li&gt;Arquitetura da informação, &lt;em&gt;portlets&lt;/em&gt; e RSS;&lt;/li&gt;
&lt;li&gt;Ferramentas de Gestão de Conteúdos;&lt;/li&gt;
&lt;li&gt;Modelo de Acessibilidade do Governo Eletrônico.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;13 - Qualidade de software:

&lt;ul&gt;
&lt;li&gt;CMMI/MPS-BR: conceitos básicos e objetivos;&lt;/li&gt;
&lt;li&gt;Disciplinas e formas de representação;&lt;/li&gt;
&lt;li&gt;Níveis de capacidade e maturidade.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;14 - Conceitos de Arquitetura de Referência:

&lt;ul&gt;
&lt;li&gt;Arquitetura de solução para o desenvolvedor básico.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;15 - Gestão e governança de TI:

&lt;ul&gt;
&lt;li&gt;ITIL v.4;&lt;/li&gt;
&lt;li&gt;COBIT 2019&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Conhecimentos e Comportamentos Digitais: 5 questões:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;1 - &lt;em&gt;Mindset&lt;/em&gt; de crescimento. Paradigma da abundância.&lt;/li&gt;
&lt;li&gt;2 - Intraempreendedorismo.&lt;/li&gt;
&lt;li&gt;3 - &lt;em&gt;Design Thinking&lt;/em&gt;, Design de Serviço.&lt;/li&gt;
&lt;li&gt;4 - Metodologias ágeis, &lt;em&gt;Lean Manufacturing&lt;/em&gt;, SCRUM.&lt;/li&gt;
&lt;li&gt;5 - Resolução de problemas complexos, visão sistêmica e estratégica.&lt;/li&gt;
&lt;li&gt;6 - Ciência de dados.&lt;/li&gt;
&lt;li&gt;7 - Senso colaborativo e disposição para somar pontos de vista divergentes.&lt;/li&gt;
&lt;li&gt;8 - Pensamento computacional.&lt;/li&gt;
&lt;li&gt;9 - Análise de Negócios.&lt;/li&gt;
&lt;li&gt;10 - Liderança, autoliderança e liderança de equipes.&lt;/li&gt;
&lt;li&gt;11 - Autodesenvolvimento.&lt;/li&gt;
&lt;li&gt;12 - Experiência do consumidor (&lt;em&gt;Customer experience&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;13 - Inteligência emocional.&lt;/li&gt;
&lt;li&gt;14 - Desenvolvimento sustentável (Pacto global e Objetivos de Desenvolvimento Sustentável - ODS).&lt;/li&gt;
&lt;li&gt;15 - Objetivos-chaves para resultados (OKR).&lt;/li&gt;
&lt;li&gt;16 - Gestão do tempo e produtividade.&lt;/li&gt;
&lt;li&gt;17 - Técnicas e boas práticas para o trabalho à distância.&lt;/li&gt;
&lt;li&gt;18 - Aprender a aprender e Aprendizagem contínua(&lt;em&gt;Life long learning&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Prova de redação
&lt;/h3&gt;

&lt;p&gt;A prova de redação terá caráter eliminatório e deve ser estruturada no formato de texto em prosa do tipo dissertativo-argumentativo. Segundo o edital Caixa, a prova valerá 100 pontos.&lt;/p&gt;

&lt;p&gt;A avaliação terá o número de linhas estipulado no enunciado da prova e o texto deverá seguir os critérios abaixo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adequação ao tema proposto;&lt;/li&gt;
&lt;li&gt;Adequação ao tipo de texto solicitado (dissertativo-argumentativo, no caso);&lt;/li&gt;
&lt;li&gt;Emprego apropriado de mecanismos de coesão;&lt;/li&gt;
&lt;li&gt;Capacidade de selecionar, organizar e relacionar de forma coerente argumentos pertinentes ao tema;&lt;/li&gt;
&lt;li&gt;Pleno domínio da norma-padrão da escrita.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Resultado
&lt;/h2&gt;

&lt;p&gt;O resultado do concurso tem divulgação prevista para agosto. Os aprovados serão convocados para apresentar a documentação e realizarem os exames médicos obrigatórios. O concurso terá validade de um ano a contar da data de publicação do edital de homologação do resultado, prorrogável por igual período, a critério da Caixa.&lt;/p&gt;

&lt;p&gt;Se você está a procura do seu primeiro emprego na área de TI, considere fortemente se inscrever para este concurso. Ao se preparar para as provas, você não só terá chances de ingressar em uma instituição renomada como a Caixa, mas também vai adquirir conhecimentos valiosos que serão fundamentais em sua trajetória na carreira e podem também te aproximar da sua tão sonhada vaga no setor privado.&lt;/p&gt;

</description>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>10 métodos de strings em JavaScript que você deveria saber</title>
      <dc:creator>Josafá Marengo</dc:creator>
      <pubDate>Fri, 27 Oct 2023 17:00:00 +0000</pubDate>
      <link>https://dev.to/josafamarengo/10-metodos-de-strings-em-javascript-que-voce-deveria-saber-m4e</link>
      <guid>https://dev.to/josafamarengo/10-metodos-de-strings-em-javascript-que-voce-deveria-saber-m4e</guid>
      <description>&lt;p&gt;As strings têm um papel crucial na programação em JavaScript, sendo empregadas para o armazenamento e a manipulação de texto. Neste artigo, você verá 10 métodos essenciais de strings em JavaScript que você deve conhecer para trabalhar com eficiência.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. startsWith()
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;startsWith()&lt;/code&gt; verifica se uma string começa com o valor especificado. Ele retorna true se a string começar com o valor e false caso contrário.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;startsWith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;searchString&lt;/span&gt;&lt;span class="p"&gt;[,&lt;/span&gt; &lt;span class="nx"&gt;position&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Olá, mundo!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;começaComOla&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;startsWith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Olá&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;começaComOla&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// true&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. endsWith()
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;endsWith()&lt;/code&gt; verifica se uma string termina com o valor especificado. Ele retorna true se a string terminar com o valor e false caso contrário.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;endsWith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;searchString&lt;/span&gt;&lt;span class="p"&gt;[,&lt;/span&gt; &lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Olá, mundo!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;terminaComMundo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;endsWith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mundo!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;terminaComMundo&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// true&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. includes()
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;includes()&lt;/code&gt; verifica se uma string contém um valor especificado. Ele retorna true se a string contiver o valor e false caso contrário.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;searchString&lt;/span&gt;&lt;span class="p"&gt;[,&lt;/span&gt; &lt;span class="nx"&gt;position&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Olá, mundo!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;contemOla&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Olá&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;contemOla&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// true&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. slice()
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;slice()&lt;/code&gt; é uma função de manipulação de strings em JavaScript que permite extrair uma parte específica de uma string e retorná-la como uma nova string.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;slice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;beginIndex&lt;/span&gt;&lt;span class="p"&gt;[,&lt;/span&gt; &lt;span class="nx"&gt;endIndex&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Olá, mundo!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;parte&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;slice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;parte&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// "mundo"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  5. toUpperCase()
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;toUpperCase()&lt;/code&gt; converte todos os caracteres de uma string em maiúsculas e retorna a nova string.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toUpperCase&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Olá, mundo!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;maiusculas&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toUpperCase&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;maiusculas&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// "OLÁ, MUNDO!"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  6. toLowerCase()
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;toLowerCase()&lt;/code&gt; converte todos os caracteres de uma string em minúsculas e retorna a nova string.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toLowerCase&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Olá, mundo!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;minusculas&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toLowerCase&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;minusculas&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// "olá, mundo!"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  7. charAt()
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;charAt()&lt;/code&gt; retorna o caractere na posição especificada de uma string.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;charAt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Olá, mundo!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;caractere&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;charAt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;caractere&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// "m"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  8. split()
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;split()&lt;/code&gt; divide uma string em um array de substrings com base em um separador especificado.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;separator&lt;/span&gt;&lt;span class="p"&gt;[,&lt;/span&gt; &lt;span class="nx"&gt;limit&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Olá, mundo!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;palavras&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;palavras&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// ["Olá,", "mundo!"]&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  9. replace()
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;replace()&lt;/code&gt; substitui a primeira ocorrência de um valor por outro em uma string.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;searchValue&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;replaceValue&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Olá, mundo!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;novoTexto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mundo&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;amigo&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;novoTexto&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// "Olá, amigo!"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  10. repeat()
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;repeat()&lt;/code&gt; cria e retorna uma nova string com um número especificado de cópias da string original.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;repeat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;palavra&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Ora &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;repeticoes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;palavra&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;repeat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;repeticoes&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// "Ora Ora Ora "&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dominar esses métodos de strings em JavaScript é fundamental para lidar com texto de forma eficaz e realizar diversas operações de manipulação de strings em seus projetos de desenvolvimento. Cada um desses métodos oferece funcionalidades específicas que podem tornar seu código mais eficiente e legível.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>braziliandevs</category>
      <category>ptbr</category>
    </item>
    <item>
      <title>23 métodos de strings que todo desenvolvedor Python deve saber</title>
      <dc:creator>Josafá Marengo</dc:creator>
      <pubDate>Thu, 19 Oct 2023 00:00:00 +0000</pubDate>
      <link>https://dev.to/josafamarengo/23-metodos-de-strings-que-todo-desenvolvedor-python-deve-saber-1mic</link>
      <guid>https://dev.to/josafamarengo/23-metodos-de-strings-que-todo-desenvolvedor-python-deve-saber-1mic</guid>
      <description>&lt;p&gt;Antes de mergulhar nas funções de strings em Python, é essencial que você esteja bem familiarizado com a definição exata do que é uma string.&lt;/p&gt;

&lt;p&gt;Em termos simples, uma string é um tipo de dado usado para descrever conteúdo textual em vez de números em diferentes linguagens de programação. Ela é principalmente composta por uma coleção pré-definida de caracteres, incluindo espaços em branco e dígitos numéricos, e é geralmente delimitada por aspas simples ou duplas para destacá-la durante a execução de um programa.&lt;/p&gt;

&lt;p&gt;As literais de string em Python não têm um limite máximo de comprimento e dependem apenas dos recursos de memória do seu computador.&lt;/p&gt;

&lt;p&gt;Em Python, índices podem ser usados para acessar caracteres individuais em uma string. Também é permitido aos usuários acessar caracteres em uma string usando referências de endereço positivas e negativas, o que é único. Índices positivos concedem acesso a caracteres a partir do início da string, enquanto índices negativos permitem acessar caracteres a partir do final.&lt;/p&gt;

&lt;p&gt;O tipo de dado string em Python vem com um grande conjunto de métodos pré-definidos. Essas funções permitem modificar e trabalhar com literais de string em Python de forma fácil.&lt;/p&gt;

&lt;p&gt;Por exemplo, se você deseja &lt;strong&gt;converter cada caractere de sua string para minúsculas&lt;/strong&gt; , existe uma maneira melhor de fazer isso do que iterar por cada caractere da string.&lt;/p&gt;

&lt;p&gt;Isso pode ser facilmente alcançado em uma única linha usando o método &lt;strong&gt;lower()&lt;/strong&gt; em Python, que realiza exatamente a mesma tarefa. É assim que esses métodos são úteis na vida real.&lt;/p&gt;

&lt;p&gt;Este artigo se concentrará nos principais &lt;strong&gt;métodos de string&lt;/strong&gt; incorporados em Python, com aplicações surpreendentemente úteis na manipulação de strings em estruturas de dados e algoritmos.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. len
&lt;/h2&gt;

&lt;p&gt;Usado para contar o número total de caracteres em uma string.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Quantos caracteres tem aqui?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="c1"&gt;# 28
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. capitalize
&lt;/h2&gt;

&lt;p&gt;O método capitalize() retorna uma nova string modificada, convertendo o primeiro caractere da string original em maiúsculo e os demais em minúsculos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;capitalize&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tExtO a Ser alTeRado&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;capitalize&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;span class="c1"&gt;# Texto a ser alterado
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. upper
&lt;/h2&gt;

&lt;p&gt;Retorna uma nova string com todos os caracteres maiúsculos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;upper&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;texto para deixar em caixa alta&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;upper&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;span class="c1"&gt;# TEXTO PARA DEIXAR EM CAIXA ALTA
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. lower
&lt;/h2&gt;

&lt;p&gt;Retorna uma nova string com todos os caracteres minúsculos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;TEXTO PARA DEIXAR EM minúsculas&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;span class="c1"&gt;# texto para deixar em minúsculas
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  5. count
&lt;/h2&gt;

&lt;p&gt;O método &lt;strong&gt;count()&lt;/strong&gt; é usado para contar quantas vezes uma determinada string aparece em um texto.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;count&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;texto_de_busca&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;count&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;texto_de_busca&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;início&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;count&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;texto_de_busca&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;início&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fim&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Este método possui três argumentos. O primeiro argumento é obrigatório, e os outros dois argumentos são opcionais. O primeiro argumento contém o valor que precisa ser procurado no texto. O segundo argumento contém a posição de início da busca, e o terceiro argumento contém a posição de fim da busca.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O seguinte script mostra os três usos diferentes do método &lt;strong&gt;count()&lt;/strong&gt;. O primeiro método irá procurar a palavra &lt;strong&gt;‘é’&lt;/strong&gt; na variável &lt;strong&gt;strVal&lt;/strong&gt;. O segundo método procura a mesma palavra a partir da posição &lt;strong&gt;20&lt;/strong&gt;. O terceiro método procura a mesma palavra dentro do intervalo da posição &lt;strong&gt;50&lt;/strong&gt; a &lt;strong&gt;100&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;
&lt;span class="n"&gt;strVal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Python é uma linguagem de programação poderosa. É muito simples de usar. É uma excelente linguagem para iniciantes aprenderem programação.&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;A palavra &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;é&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; apareceu %d vezes&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;strVal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;count&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;é&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;span class="c1"&gt;# A palavra 'é' apareceu 1 vezes
&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;A palavra &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;é&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; apareceu %d vezes após a posição 20&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;strVal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;count&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;é&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;span class="c1"&gt;# A palavra 'é' apareceu 0 vezes após a posição 20
&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;A palavra &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;é&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; apareceu %d vezes dentro do intervalo de 50 a 100&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;strVal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;count&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;é&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;span class="c1"&gt;# A palavra 'é' apareceu 0 vezes dentro do intervalo de 50 a 100
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  6. find
&lt;/h2&gt;

&lt;p&gt;Retorna a posição/índice da primeira ocorrência de uma substring em uma determinada string. Caso contrário, ele retorna -1.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;texto_de_busca&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;texto_de_busca&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;posição_inicial&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;texto_de_busca&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;posição_inicial&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;posição_final&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Este método pode receber três argumentos, onde o primeiro argumento é obrigatório e os outros dois argumentos são opcionais. O primeiro argumento contém o valor da string que será procurada, o segundo argumento define a posição de início da busca e o terceiro argumento define a posição de fim da busca. Ele retorna a posição do &lt;strong&gt;texto_de_busca&lt;/strong&gt; se ele existir na string principal, caso contrário, retorna -1.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Os usos do método &lt;strong&gt;find()&lt;/strong&gt; com um argumento, dois argumentos e três argumentos são mostrados no seguinte script. A primeira saída será -1 porque o texto de busca é ’ &lt;strong&gt;python&lt;/strong&gt; ’ e a variável, &lt;strong&gt;str&lt;/strong&gt; , contém a string ’ &lt;strong&gt;Python&lt;/strong&gt; ’. A segunda saída retornará uma posição válida porque a palavra ’ &lt;strong&gt;program&lt;/strong&gt; ’ existe após a posição &lt;strong&gt;10&lt;/strong&gt;. A terceira saída retornará uma posição válida porque a palavra ’ &lt;strong&gt;earn&lt;/strong&gt; ’ existe dentro do intervalo de 0 a 5 da string.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Aprenda programação em Python&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;python&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="c1"&gt;# -1
&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Python&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="c1"&gt;# 23
&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;program&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="c1"&gt;# 8
&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Python&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="c1"&gt;# -1
&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  7. rfind
&lt;/h2&gt;

&lt;p&gt;Em Python, o método &lt;code&gt;rfind()&lt;/code&gt; é usado para encontrar a última ocorrência de uma substring. Ele funciona de maneira semelhante ao método &lt;code&gt;find()&lt;/code&gt;, mas começa a busca do final da string em direção ao início. Se a substring for encontrada, o método retorna a posição da última ocorrência. Caso contrário, ele retorna -1.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rfind&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rfind&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;início&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rfind&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;início&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fim&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Python é uma linguagem de programação Python.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="c1"&gt;# Encontrar a última ocorrência de "Python"
&lt;/span&gt;&lt;span class="n"&gt;posicao&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rfind&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Python&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Posição da última ocorrência de &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Python&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;posicao&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# Posição da última ocorrência de 'Python': 38
&lt;/span&gt;
&lt;span class="c1"&gt;# Começar a busca a partir da posição 20
&lt;/span&gt;&lt;span class="n"&gt;posicao&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rfind&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Python&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Posição da última ocorrência de &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Python&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; a partir da posição 20:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;posicao&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# Posição da última ocorrência de 'Python' a partir da posição 20: 38
&lt;/span&gt;
&lt;span class="c1"&gt;# Limitar a busca até a posição 25
&lt;/span&gt;&lt;span class="n"&gt;posicao&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rfind&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Python&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Posição da última ocorrência de &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Python&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; até a posição 25:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;posicao&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# Posição da última ocorrência de 'Python' até a posição 25: 0
&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  8. startswith
&lt;/h2&gt;

&lt;p&gt;Verifica se uma determinada string começa com um prefixo específico ou não, e retorna verdadeiro ou falso.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;startswith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Sobremesa&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;startswith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Sobre&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# True
&lt;/span&gt;&lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;startswith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;sobre&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# False
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  9. endswith
&lt;/h2&gt;

&lt;p&gt;Verifica se uma determinada string termina com um sufixo específico ou não, e retorna verdadeiro ou falso.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;endswith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;constitucionalissimamente&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;endswith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Mente&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# False
&lt;/span&gt;&lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;endswith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;mente&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# True
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  10. index
&lt;/h2&gt;

&lt;p&gt;O método &lt;strong&gt;index()&lt;/strong&gt; funciona como o método &lt;strong&gt;find()&lt;/strong&gt;, mas há uma única diferença entre esses métodos. Ambos os métodos retornam a posição do texto de busca se a string existir na string principal. Se o texto de busca não existir na string principal, o método &lt;strong&gt;find()&lt;/strong&gt; retorna -1, mas o método &lt;strong&gt;index()&lt;/strong&gt; gera um &lt;strong&gt;ValueError&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;index&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;texto_de_busca&lt;/span&gt; &lt;span class="p"&gt;[,&lt;/span&gt; &lt;span class="n"&gt;início&lt;/span&gt; &lt;span class="p"&gt;[,&lt;/span&gt; &lt;span class="n"&gt;fim&lt;/span&gt;&lt;span class="p"&gt;]])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Este método possui três argumentos. O primeiro argumento é obrigatório e contém o texto de busca. Os outros dois argumentos são opcionais e contêm a posição de início e fim da busca.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O método &lt;strong&gt;index()&lt;/strong&gt; é usado quatro vezes no seguinte script. Um bloco &lt;strong&gt;try-except&lt;/strong&gt; é usado aqui para lidar com o &lt;strong&gt;ValueError&lt;/strong&gt;. O método &lt;strong&gt;index()&lt;/strong&gt; é usado com um argumento na primeira saída, que buscará a palavra ’ &lt;strong&gt;powerful&lt;/strong&gt; ’ na variável &lt;strong&gt;strVal&lt;/strong&gt;. Em seguida, o método &lt;strong&gt;index()&lt;/strong&gt; buscará a palavra ’ &lt;strong&gt;program&lt;/strong&gt; ’ a partir da posição &lt;strong&gt;10&lt;/strong&gt; que existe em &lt;strong&gt;strVal&lt;/strong&gt;. Em seguida, o método buscará a palavra ’ &lt;strong&gt;is&lt;/strong&gt; ’ na posição &lt;strong&gt;5&lt;/strong&gt; a &lt;strong&gt;15&lt;/strong&gt;. O último método &lt;strong&gt;index()&lt;/strong&gt; buscará a palavra ’ &lt;strong&gt;his&lt;/strong&gt; ’ em &lt;strong&gt;025&lt;/strong&gt; , que não existe em &lt;strong&gt;strVal&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;strVal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Python é uma linguagem de programação poderosa.&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;

&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;strVal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;index&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;poderosa&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="c1"&gt;# 38
&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;strVal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;index&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;programação&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="c1"&gt;# 26
&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;strVal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;index&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;é&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="c1"&gt;# 7
&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;strVal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;index&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;uma&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="c1"&gt;# A string de busca não foi encontrada
&lt;/span&gt;
&lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;ValueError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;A string de busca não foi encontrada&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  11. split
&lt;/h2&gt;

&lt;p&gt;Este método é usado para dividir qualquer dado de string com base em um separador ou delimitador específico. Ele pode receber dois argumentos, ambos são opcionais.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;separador&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;separador&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;maxsplit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;maxsplit&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Se este método for usado sem nenhum argumento, o espaço será usado como separador por padrão. Qualquer caractere ou uma lista de caracteres pode ser usado como separador. O segundo argumento opcional é usado para definir o limite de vezes que a string será dividida. Ele retorna uma lista de strings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;s1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;string methods in python programming language&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="c1"&gt;# ['string', 'methods', 'in', 'python']
&lt;/span&gt;
&lt;span class="n"&gt;s2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;string methods in python programming language&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;maxsplit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# ['string', 'methods in python']
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  12. rsplit
&lt;/h2&gt;

&lt;p&gt;Assim como o método &lt;strong&gt;split&lt;/strong&gt; , o &lt;strong&gt;rsplit&lt;/strong&gt; é usado para dividir qualquer dado de string com base em um separador ou delimitador específico. Ele também pode receber dois argumentos, e ambos são opcionais.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rsplit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rsplit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;separador&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rsplit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;separador&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;maxsplit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;maxsplit&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;string methods in python&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rsplit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="c1"&gt;# ['string', 'methods', 'in', 'python']
&lt;/span&gt;
&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;string methods in python&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rsplit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;maxsplit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# ['string methods in', 'python']
&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  13. join
&lt;/h2&gt;

&lt;p&gt;O método &lt;strong&gt;join()&lt;/strong&gt; é usado para criar uma nova string combinando outras strings com uma string, lista de strings ou tupla de strings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;separador&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;iterável&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ele possui apenas um argumento que pode ser uma string, uma lista ou uma tupla, e o &lt;strong&gt;separador&lt;/strong&gt; contém o valor da string que será usado para a concatenação.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O método strip() é usado para remover espaços em branco de ambos os lados de uma string.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;nomes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Alice&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bob&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Charlie&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;David&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;nomes_formatados&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nomes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Lista de nomes formatada:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;nomes_formatados&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# Lista de nomes formatada: Alice, Bob, Charlie, David
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  13. strip
&lt;/h2&gt;

&lt;p&gt;O método &lt;strong&gt;strip()&lt;/strong&gt; é usado para remover espaços em branco de ambos os lados de uma string. Este método não aceita nenhum argumento.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rStrip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; Texto com espaço em branco no início e no fim. &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="c1"&gt;# "Texto com espaço em branco no início e no fim."
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  14. lstrip
&lt;/h2&gt;

&lt;p&gt;O método &lt;strong&gt;lstrip()&lt;/strong&gt; remove o espaço em branco do lado esquerdo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lstrip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; Texto com espaço em branco no início e no fim. &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lstrip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="c1"&gt;# "Texto com espaço em branco no início e no fim. "
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  15. rstrip
&lt;/h2&gt;

&lt;p&gt;O método &lt;strong&gt;rstrip()&lt;/strong&gt; remove o espaço em branco do lado direito da string.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rstrip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; Texto com espaço em branco no início e no fim. &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rstrip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="c1"&gt;# " Texto com espaço em branco no início e no fim."
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  16. removeprefix
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;removeprefix&lt;/code&gt; em Python é usado para remover um prefixo especificado de uma string. Se a string começa com o prefixo, o prefixo é removido; caso contrário, a string original é mantida inalterada.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;removeprefix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Python é ótimo&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;resultado&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;removeprefix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Python é &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;resultado&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  
&lt;span class="c1"&gt;# "ótimo"
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  17. removesuffix
&lt;/h2&gt;

&lt;p&gt;O método &lt;code&gt;removesuffix&lt;/code&gt; em Python é utilizado para remover um sufixo específico de uma string. Se a string terminar com o sufixo, esse sufixo é removido; caso contrário, a string original permanecerá inalterada.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;removesufix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;O inverno está chegando.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;resultado&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;removesuffix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; está chegando.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;resultado&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  
&lt;span class="c1"&gt;# "O inverno"
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  18. replace
&lt;/h2&gt;

&lt;p&gt;O método &lt;strong&gt;replace()&lt;/strong&gt; é usado para substituir uma parte específica de uma cadeia de caracteres por outra cadeia, se a correspondência for encontrada. Ele pode receber três argumentos, sendo dois obrigatórios e um opcional.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;string_de_busca&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;string_de_substituição&lt;/span&gt; &lt;span class="p"&gt;[,&lt;/span&gt;&lt;span class="n"&gt;limite&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O primeiro argumento é a string de busca que você deseja substituir, e o segundo argumento é a string de substituição. O terceiro argumento opcional define o limite para a substituição da string.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No script a seguir, o primeiro &lt;strong&gt;replace&lt;/strong&gt; é usado para substituir a palavra ’ &lt;strong&gt;PHP&lt;/strong&gt; ’ pela palavra ’ &lt;strong&gt;Java&lt;/strong&gt; ’ no conteúdo da variável &lt;strong&gt;str&lt;/strong&gt;. Como a palavra de busca existe na variável &lt;strong&gt;str&lt;/strong&gt; , a palavra ’ &lt;strong&gt;PHP&lt;/strong&gt; ’ será substituída pela palavra ’ &lt;strong&gt;Java&lt;/strong&gt; ’. O terceiro argumento do método &lt;strong&gt;replace&lt;/strong&gt; é usado no próximo &lt;strong&gt;replace&lt;/strong&gt; e ele substituirá apenas a primeira correspondência da palavra de busca.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;
&lt;span class="n"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Eu gosto de PHP, mas eu gosto mais de Python&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="n"&gt;substituicao&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;PHP&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Java&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;String original:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# String original: Eu gosto de PHP, mas eu gosto mais de Python
&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;String substituída:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;substituicao&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# String substituída: Eu gosto de Java, mas eu gosto mais de Python
&lt;/span&gt;
&lt;span class="n"&gt;substituicao_2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gosto&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;não gosto&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;String original:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# String original: Eu gosto de PHP, mas eu gosto mais de Python
&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;String substituída:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;substituicao_2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# String substituída: Eu não gosto de PHP, mas eu gosto mais de Python
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  19. format
&lt;/h2&gt;

&lt;p&gt;O método &lt;strong&gt;format()&lt;/strong&gt; é um método essencial em Python para gerar saída formatada. Ele tem muitos usos e pode ser aplicado tanto a dados de tipo string quanto numéricos para gerar uma saída formatada. Como este método pode ser usado para formatação baseada em índice de dados de tipo string é mostrado no exemplo a seguir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="p"&gt;{}.&lt;/span&gt;&lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;valor&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A string e a posição do marcador são definidas dentro das chaves ({}). Ele retorna a string formatada com base na string e nos valores passados na posição do marcador.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Os quatro tipos de formatação são mostrados no script a seguir. No primeiro resultado, o valor do índice {0} é usado. Nenhuma posição é atribuída no segundo resultado. Duas posições sequenciais são atribuídas no terceiro resultado. Três posições não ordenadas são definidas no quarto resultado.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Exemplo 1: Substituição direta com índice
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Aprenda a programar em {0}.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Python&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="c1"&gt;# Aprenda a programar em Python.
&lt;/span&gt;
&lt;span class="c1"&gt;# Exemplo 2: Substituição sem especificar índices
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;Tanto {} quanto {} são linguagens de script&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bash&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Python&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="c1"&gt;# Tanto Bash quanto Python são linguagens de script
&lt;/span&gt;
&lt;span class="c1"&gt;# Exemplo 3: Substituição com índices
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;ID do estudante: {0}&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;Nome do estudante: {1}&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;00001&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;João Ninguém&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="c1"&gt;# ID do estudante: 00001
# Nome do estudante: João Ninguém
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  20. center
&lt;/h2&gt;

&lt;p&gt;Retorna uma string centralizada em um comprimento especificado. O preenchimento é feito usando o caractere especificado (o padrão é um espaço).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;center&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;width&lt;/span&gt; &lt;span class="p"&gt;[,&lt;/span&gt; &lt;span class="n"&gt;char&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Python é incrível!&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;center&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;-&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# ------Python é incrível!------
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  21. ljust
&lt;/h2&gt;

&lt;p&gt;Retorna a string justificada à esquerda em uma string de comprimento especificado. O preenchimento é feito usando o caractere especificado (o padrão é um espaço).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ljust&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;width&lt;/span&gt; &lt;span class="p"&gt;[,&lt;/span&gt; &lt;span class="n"&gt;char&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Python é incrível!&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ljust&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;-&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# Python é incrível!------------
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  22. rjust
&lt;/h2&gt;

&lt;p&gt;Retorna a string justificada à direita em uma string de comprimento especificado. O preenchimento é feito usando o caractere especificado (o padrão é um espaço).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rjust&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;width&lt;/span&gt; &lt;span class="p"&gt;[,&lt;/span&gt; &lt;span class="n"&gt;char&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Python é incrível!&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rjust&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;-&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# ------------Python é incrível!
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  23. partition
&lt;/h2&gt;

&lt;p&gt;Em Python, o método de string &lt;strong&gt;partition()&lt;/strong&gt; procura por uma substring específica dentro de uma string e divide a string original em uma tupla contendo três elementos.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O primeiro elemento contém uma parte da string antes da substring especificada.&lt;/li&gt;
&lt;li&gt;O segundo elemento contém a substring especificada.&lt;/li&gt;
&lt;li&gt;O terceiro elemento contém a parte restante após a substring.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Sintaxe:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;partition&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;frase&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;O gato persegue o rato no jardim.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;substring&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rato&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;resultado&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;frase&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;partition&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;resultado&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# ["O gato persegue o ", "rato", " no jardim."]
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em resumo, dominar os métodos de strings em Python é uma habilidade essencial para qualquer programador, pois permite a manipulação eficaz de texto, desempenhando um papel crítico em diversas áreas, desde análise de texto até desenvolvimento web. Conhecer essas ferramentas não apenas melhora a eficiência e a legibilidade do código, mas também abre portas para a criatividade, possibilitando a criação de soluções inovadoras e a resolução de desafios complexos. Portanto, investir tempo no aprendizado e aprimoramento desses métodos é fundamental para se tornar um programador mais competente e versátil.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resumo&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Método&lt;/th&gt;
&lt;th&gt;Uso&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;len&lt;/td&gt;
&lt;td&gt;Conta o número total de caracteres em uma string.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;capitalize&lt;/td&gt;
&lt;td&gt;Converte o primeiro caractere em maiúsculo e os demais em minúsculos.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;upper&lt;/td&gt;
&lt;td&gt;Retorna uma nova string com todos os caracteres em maiúsculo.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;lower&lt;/td&gt;
&lt;td&gt;Retorna uma nova string com todos os caracteres em minúsculo.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;count&lt;/td&gt;
&lt;td&gt;Conta quantas vezes uma string específica aparece na string.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;find&lt;/td&gt;
&lt;td&gt;Retorna a posição da primeira ocorrência de uma substring.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;rfind&lt;/td&gt;
&lt;td&gt;Retorna a posição da última ocorrência de uma substring.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;startswith&lt;/td&gt;
&lt;td&gt;Verifica se a string começa com um prefixo específico.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;endswith&lt;/td&gt;
&lt;td&gt;Verifica se a string termina com um sufixo específico.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;index&lt;/td&gt;
&lt;td&gt;Funciona como o método find(), mas gera um ValueError se não encontrar.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;split&lt;/td&gt;
&lt;td&gt;Divide a string com base em um separador ou delimitador específico.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;rsplit&lt;/td&gt;
&lt;td&gt;Divide a string com base em um separador ou delimitador específico, começando do final.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;join&lt;/td&gt;
&lt;td&gt;Cria uma nova string combinando outras strings com um separador.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;strip&lt;/td&gt;
&lt;td&gt;Remove espaços em branco de ambos os lados da string.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;lstrip&lt;/td&gt;
&lt;td&gt;Remove espaços em branco do lado esquerdo da string.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;rstrip&lt;/td&gt;
&lt;td&gt;Remove espaços em branco do lado direito da string.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;removeprefix&lt;/td&gt;
&lt;td&gt;Remove um prefixo específico de uma string.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;removesuffix&lt;/td&gt;
&lt;td&gt;Remove um sufixo específico de uma string.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;replace&lt;/td&gt;
&lt;td&gt;Substitui uma parte específica de uma string por outra, se a correspondência for encontrada.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;format&lt;/td&gt;
&lt;td&gt;Gera saída formatada com base em índice de dados de tipo string.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;center&lt;/td&gt;
&lt;td&gt;Retorna uma string centralizada em um comprimento especificado.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ljust&lt;/td&gt;
&lt;td&gt;Retorna a string justificada à esquerda em um comprimento especificado.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;rjust&lt;/td&gt;
&lt;td&gt;Retorna a string justificada à direita em um comprimento especificado.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;partition&lt;/td&gt;
&lt;td&gt;Divide a string em uma tupla contendo três elementos com base em uma substring específica.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>python</category>
      <category>string</category>
      <category>braziliandevs</category>
      <category>ptbr</category>
    </item>
    <item>
      <title>Java Collections: Saiba quando usar Set, Map, List ou Queue.</title>
      <dc:creator>Josafá Marengo</dc:creator>
      <pubDate>Tue, 12 Sep 2023 00:00:00 +0000</pubDate>
      <link>https://dev.to/josafamarengo/java-collections-saiba-quando-usar-set-map-list-ou-queue-12o</link>
      <guid>https://dev.to/josafamarengo/java-collections-saiba-quando-usar-set-map-list-ou-queue-12o</guid>
      <description>&lt;p&gt;O aproveitamento das interfaces oferecidas pelo Framework de Coleções impede que o desenvolvedor gaste energia na criação de suas próprias estruturas, permitindo-lhe direcionar seus esforços para áreas cruciais do desenvolvimento. Essas estruturas de dados e algoritmos de elevada qualidade e desempenho aprimoram a excelência e a eficiência das aplicações, enquanto também fomentam a reutilização de software e possibilitam a compatibilidade entre APIs que não estão intrinsecamente relacionadas.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é o Collections Framework?
&lt;/h2&gt;

&lt;p&gt;O Collections Framework é uma estrutura bem definida composta por um conjunto de interfaces e classes que servem para representar e tratar grupos de dados como uma única entidade, que é comumente chamada de coleção. Dentro do Collections Framework, encontramos os seguintes elementos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Interfaces&lt;/strong&gt; : Permitem a manipulação das coleções seguindo o princípio de “Programar para interfaces e não para implementações”, o que significa que o acesso aos objetos deve ser feito apenas por meio dos métodos definidos nessas interfaces.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implementações&lt;/strong&gt; : Referem-se às implementações concretas das interfaces. Estas são as classes que fornecem uma implementação real das interfaces e são usadas para criar instâncias específicas de coleções.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Algoritmos&lt;/strong&gt; : São métodos que executam diversas operações sobre os objetos contidos nas coleções, incluindo operações como busca e ordenação.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Interfaces
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Collection&lt;/strong&gt; : Encontra-se no topo da hierarquia. Não existem implementações diretas desta interface, mas ela define as operações fundamentais para as coleções, como adição, remoção, esvaziamento, entre outras.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set&lt;/strong&gt; : Esta interface define uma coleção que não permite a inclusão de elementos duplicados. A interface SortedSet, que herda de Set, permite a ordenação natural dos elementos, como por exemplo, em ordem alfabética.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;List&lt;/strong&gt; : Define uma coleção ordenada, onde elementos duplicados são permitidos. Esta interface é a mais apropriada quando é necessária a realização de acesso aleatório aos elementos, usando seus índices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Queue&lt;/strong&gt; : É um tipo de coleção que mantém uma lista de prioridades, onde a ordem dos elementos é determinada pela implementação de Comparable ou Comparator. Através da interface Queue, é possível criar filas e pilhas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Map&lt;/strong&gt; : Cada elemento contém, na verdade, dois objetos: uma chave e um valor. Valores podem ser duplicados, mas chaves não podem. A interface SortedMap estende Map e permite a classificação ascendente das chaves. Um exemplo de aplicação dessa interface é a classe Properties, que é utilizada para armazenar configurações e propriedades de um sistema.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Implementações
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Interfaces&lt;/th&gt;
&lt;th&gt;Tabela de Espalhamento&lt;/th&gt;
&lt;th&gt;Array Redimensionável&lt;/th&gt;
&lt;th&gt;Árvore&lt;/th&gt;
&lt;th&gt;Lista Ligada&lt;/th&gt;
&lt;th&gt;Tabela de Espalhamento + Lista Ligada&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Set&lt;/td&gt;
&lt;td&gt;HashSet&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;TreeSet&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;LinkedHashSet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;List&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;ArrayList&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;LinkedList&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Queue&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Map&lt;/td&gt;
&lt;td&gt;HashMap&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;TreeMap&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;LinkedHashMap&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ArrayList&lt;/strong&gt; : Funciona como um array que pode crescer em tamanho. A busca por um elemento é rápida, mas a inserção e a exclusão de elementos são mais lentas e proporcionais ao tamanho da estrutura. É a escolha ideal quando o acesso rápido aos elementos é prioritário. Por exemplo, ao criar um catálogo de sua biblioteca pessoal, onde cada livro recebe um número sequencial para acesso.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LinkedList&lt;/strong&gt; : Implementa uma lista ligada, em que cada nó contém dados e uma referência para o próximo nó. Ao contrário do ArrayList, a busca é mais lenta, mas as inserções e exclusões são rápidas. Portanto, prefira LinkedList quando houver a necessidade frequente de inserir e excluir itens, como ao gerenciar compras mensais de supermercado.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HashSet&lt;/strong&gt; : Oferece acesso rápido aos dados, mas não garante que eles estejam ordenados. É a escolha adequada quando a solução requer elementos únicos, e a ordem não é relevante. Por exemplo, ao criar um catálogo de suas músicas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TreeSet&lt;/strong&gt; : Os dados são ordenados, mas o acesso é mais lento que no HashSet. Use TreeSet quando for necessário um conjunto de elementos únicos em ordem natural. É recomendado para as mesmas aplicações do HashSet, com a vantagem da ordenação natural.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LinkedHashSet&lt;/strong&gt; : Derivado do HashSet, mantém uma lista duplamente ligada de seus elementos. Os elementos são iterados na ordem de inserção ou na ordem em que foram acessados na última iteração. É útil para registrar a chegada de corredores em uma maratona.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HashMap&lt;/strong&gt; : Baseado em tabela de espalhamento, permite chaves e valores nulos. Não garante ordenação dos dados. Escolha quando a ordenação não é relevante e é necessário um identificador, como o ISBN em um catálogo de biblioteca pessoal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TreeMap&lt;/strong&gt; : Implementa SortedMap e garante a ordenação ascendente das chaves. Pode especificar uma ordem personalizada. Use quando precisar de um mapa ordenado. Similar ao HashMap, mas com menor desempenho.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LinkedHashMap&lt;/strong&gt; : Mantém uma lista duplamente ligada de elementos, com iteração na ordem de inserção das chaves. Útil quando a ordem de inserção é importante, como registrar corredores em uma maratona.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Todas essas implementações possuem os métodos definidos em suas interfaces, aceitam elementos nulos e, nos mapas, tanto chaves quanto valores podem ser nulos. Não são seguras para uso concorrente e são serializáveis, o que permite salvar seus estados e suportam o método clone(), que cria cópias de objetos.&lt;/p&gt;

&lt;p&gt;Filas são usadas quando é necessário &lt;em&gt;LIFO&lt;/em&gt;, &lt;em&gt;FIFO&lt;/em&gt; ou remoção por semântica de prioridade, e, finalmente, mapas são usados quando a associação de chaves e valores é necessária.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lists
&lt;/h3&gt;

&lt;p&gt;Vamos começar com uma tabela de comparação de listas. As operações comuns para listas são adicionar e remover elementos, acessar um elemento pelo índice, percorrer os elementos e encontrar um elemento:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tabela de Comparação de Listas&lt;/th&gt;
&lt;th&gt;Adicionar/Remover Elemento no Início&lt;/th&gt;
&lt;th&gt;Adicionar/Remover Elemento no Meio&lt;/th&gt;
&lt;th&gt;Adicionar/Remover Elemento no Fim&lt;/th&gt;
&lt;th&gt;Obter o i-ésimo Elemento (acesso aleatório)&lt;/th&gt;
&lt;th&gt;Encontrar Elemento&lt;/th&gt;
&lt;th&gt;Ordem de Traversal&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ArrayList&lt;/td&gt;
&lt;td&gt;O(n)&lt;/td&gt;
&lt;td&gt;O(n)&lt;/td&gt;
&lt;td&gt;O(1)&lt;/td&gt;
&lt;td&gt;O(1)&lt;/td&gt;
&lt;td&gt;O(n), O(log(n)) se ordenado&lt;/td&gt;
&lt;td&gt;como inserido&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LinkedList&lt;/td&gt;
&lt;td&gt;O(1)&lt;/td&gt;
&lt;td&gt;O(1)&lt;/td&gt;
&lt;td&gt;O(1)&lt;/td&gt;
&lt;td&gt;O(n)&lt;/td&gt;
&lt;td&gt;O(n)&lt;/td&gt;
&lt;td&gt;como inserido&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Como podemos ver, &lt;em&gt;ArrayList&lt;/em&gt; é bom para adicionar e remover elementos no final, bem como ter acesso aleatório aos elementos. Por outro lado, é ruim para adicionar e remover elementos em posições arbitrárias. Enquanto isso, &lt;em&gt;LinkedList&lt;/em&gt; é bom para adicionar e remover elementos em qualquer posição. No entanto, não suporta acesso aleatório verdadeiro &lt;em&gt;O(1)&lt;/em&gt;. Portanto, em relação a listas, a escolha padrão é &lt;em&gt;ArrayList&lt;/em&gt; até que precisemos de adição e remoção rápida de elementos em qualquer posição.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sets
&lt;/h3&gt;

&lt;p&gt;Para conjuntos, estamos interessados em adicionar e remover elementos, percorrer elementos e encontrar um elemento:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tabela de comparação de conjuntos&lt;/th&gt;
&lt;th&gt;Adicionar elemento&lt;/th&gt;
&lt;th&gt;Remover elemento&lt;/th&gt;
&lt;th&gt;Encontrar elemento&lt;/th&gt;
&lt;th&gt;Ordem de travessia&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;HashSet&lt;/td&gt;
&lt;td&gt;amortizado O(1)&lt;/td&gt;
&lt;td&gt;amortizado O(1)&lt;/td&gt;
&lt;td&gt;O(1)&lt;/td&gt;
&lt;td&gt;aleatória, espalhada pela função hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LinkedHashSet&lt;/td&gt;
&lt;td&gt;amortizado O(1)&lt;/td&gt;
&lt;td&gt;amortizado O(1)&lt;/td&gt;
&lt;td&gt;O(1)&lt;/td&gt;
&lt;td&gt;como inserido&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TreeSet&lt;/td&gt;
&lt;td&gt;O(log(n))&lt;/td&gt;
&lt;td&gt;O(log(n))&lt;/td&gt;
&lt;td&gt;O(log(n))&lt;/td&gt;
&lt;td&gt;ordenada, de acordo com o critério de comparação dos elementos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EnumSet&lt;/td&gt;
&lt;td&gt;O(1)&lt;/td&gt;
&lt;td&gt;O(1)&lt;/td&gt;
&lt;td&gt;O(1)&lt;/td&gt;
&lt;td&gt;de acordo com a ordem de definição dos valores enum&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Como podemos ver, a escolha padrão é a coleção &lt;em&gt;HashSet&lt;/em&gt;, pois é muito rápida para todas as operações que suporta. Além disso, se a ordem de inserção dos elementos também importar, optamos pelo &lt;em&gt;LinkedHashSet&lt;/em&gt;. Basicamente, é uma extensão do &lt;em&gt;HashSet&lt;/em&gt;, que mantém o controle da ordem de inserção dos elementos usando uma estrutura de lista vinculada internamente.&lt;/p&gt;

&lt;p&gt;Se os elementos precisarem ser classificados e a ordem classificada precisar ser preservada ao adicionar e remover elementos, então optamos pelo &lt;em&gt;TreeSet&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Se os elementos do conjunto forem apenas valores de enumeração de um único tipo de enumeração, então a escolha mais sábia é o &lt;em&gt;EnumSet&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Queue
&lt;/h3&gt;

&lt;p&gt;As filas podem ser divididas em dois grupos:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;em&gt;LinkedList&lt;/em&gt;, &lt;em&gt;ArrayDeque&lt;/em&gt; - Implementações da interface &lt;em&gt;Queue&lt;/em&gt; podem atuar como pilha, fila e estruturas de dados de desenfileiramento. Geralmente, o &lt;em&gt;ArrayDeque&lt;/em&gt; é mais rápido do que o &lt;em&gt;LinkedList&lt;/em&gt;. Portanto, é a escolha padrão.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;PriorityQueue - Implementação de fila&lt;/em&gt; apoiada pela estrutura de dados de heap binário. Usado para recuperação rápida (&lt;em&gt;O(1)&lt;/em&gt;) de elementos com a maior prioridade. Adição e remoção funcionam em tempo &lt;em&gt;O(log(n))&lt;/em&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Maps
&lt;/h3&gt;

&lt;p&gt;Da mesma forma que para conjuntos, consideramos as operações de adição e remoção de elementos, a travessia de elementos e a busca de um elemento para mapas:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tabela de Comparação de Mapas&lt;/th&gt;
&lt;th&gt;Adicionar elemento&lt;/th&gt;
&lt;th&gt;Remover elemento&lt;/th&gt;
&lt;th&gt;Encontrar elemento&lt;/th&gt;
&lt;th&gt;Ordem de travessia&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;HashMap&lt;/td&gt;
&lt;td&gt;amortizado O(1)&lt;/td&gt;
&lt;td&gt;amortizado O(1)&lt;/td&gt;
&lt;td&gt;O(1)&lt;/td&gt;
&lt;td&gt;aleatório, espalhado pela função de hash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LinkedHashMap&lt;/td&gt;
&lt;td&gt;amortizado O(1)&lt;/td&gt;
&lt;td&gt;amortizado O(1)&lt;/td&gt;
&lt;td&gt;O(1)&lt;/td&gt;
&lt;td&gt;conforme inserido&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TreeMap&lt;/td&gt;
&lt;td&gt;O(log(n))&lt;/td&gt;
&lt;td&gt;O(log(n))&lt;/td&gt;
&lt;td&gt;O(log(n))&lt;/td&gt;
&lt;td&gt;ordenado, de acordo com o critério de comparação dos elementos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EnumMap&lt;/td&gt;
&lt;td&gt;O(1)&lt;/td&gt;
&lt;td&gt;O(1)&lt;/td&gt;
&lt;td&gt;O(1)&lt;/td&gt;
&lt;td&gt;de acordo com a ordem de definição dos valores de enumeração&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A lógica de seleção para mapas é semelhante à lógica de seleção para conjuntos: usamos o &lt;em&gt;HashMap&lt;/em&gt; por padrão, o &lt;em&gt;LinkedHashMap&lt;/em&gt; se a ordem de inserção também for importante, o &lt;em&gt;TreeMap&lt;/em&gt; para classificação e o &lt;em&gt;EnumMap&lt;/em&gt; quando as chaves pertencem a valores de um tipo de enumeração específico.&lt;/p&gt;

&lt;p&gt;Por fim, existem duas implementações da interface &lt;em&gt;Map&lt;/em&gt; que têm aplicações muito específicas: &lt;em&gt;IdentityHashMap&lt;/em&gt; e &lt;em&gt;WeakHashMap&lt;/em&gt;.&lt;/p&gt;

</description>
      <category>java</category>
      <category>collections</category>
      <category>collectionsinjava</category>
      <category>programação</category>
    </item>
    <item>
      <title>10 métodos de Strings em Java que você precisa saber</title>
      <dc:creator>Josafá Marengo</dc:creator>
      <pubDate>Sun, 20 Aug 2023 00:00:00 +0000</pubDate>
      <link>https://dev.to/josafamarengo/10-metodos-de-strings-em-java-que-voce-precisa-saber-339b</link>
      <guid>https://dev.to/josafamarengo/10-metodos-de-strings-em-java-que-voce-precisa-saber-339b</guid>
      <description>&lt;p&gt;Strings são uma parte essencial de praticamente qualquer código. Por isso, é importante que uma linguagem de programação forneça suporte robusto para a sua manipulação. Dada a importância dessa tarefa, este artigo se propõe a mostrar de forma clara os dez principais métodos para a manipulação de Strings em Java. E vamos a eles!&lt;/p&gt;

&lt;h2&gt;
  
  
  1. indexOf()
&lt;/h2&gt;

&lt;p&gt;Usado para encontrar caracteres e substrings em uma string. Ele retorna o índice da primeira ocorrência da substring passada como parâmetro dentro desta string; além disso, se fornecermos o fromIndex, ele começa a procurar a partir do índice indicado.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sintaxe de indexOf()
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public int indexOf(int str, int fromIndex)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Parâmetro(s)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;_ &lt;strong&gt;str:&lt;/strong&gt; _ Substring a ser procurada&lt;/li&gt;
&lt;li&gt;_ &lt;strong&gt;fromIndex:&lt;/strong&gt; _ A pesquisa começa a partir deste índice&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Valor de Retorno
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Índice da primeira ocorrência da substring especificada;&lt;/li&gt;
&lt;li&gt;0 se uma string vazia for passada, ou;&lt;/li&gt;
&lt;li&gt;-1 se não houver tal ocorrência.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Variantes sobrecarregadas
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public int indexOf(int ch)

public int indexOf(int ch, int fromIndex)

public int indexOf(String str)

public int indexOf(String str,int fromIndex)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Utilização prática do indexOf()&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Já se questionou sobre o funcionamento do recurso de busca nos seus editores de código preferidos?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;O método &lt;em&gt;indexOf()&lt;/em&gt; pode ser empregado para implementar essa funcionalidade. Como?&lt;/p&gt;

&lt;p&gt;A abordagem consiste em iterar por todas as linhas e utilizar o &lt;em&gt;indexOf()&lt;/em&gt; com a string alvo. Se houver múltiplas ocorrências da string alvo na mesma linha, o processo começa a partir do ponto onde a última substring encontrada terminou.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public static int buscarOcorrencias(String[] paragrafo, String alvo) {
    int totalOcorrencias = 0;
    int indice = 0;

    for (int numeroLinha = 0; numeroLinha &amp;lt; paragrafo.length; ++numeroLinha) {
        String linha = paragrafo[numeroLinha];
        indice = linha.indexOf(alvo, indice);

        while (indice != -1) {
            System.out.println("Encontrado na linha " + numeroLinha + " na posição " + indice);
            indice += alvo.length();
            totalOcorrencias++;
            indice = linha.indexOf(alvo, indice);
        }
    }

    return totalOcorrencias;
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Neste exemplo, a função &lt;code&gt;buscarOcorrencias&lt;/code&gt; varre um array de strings que representa um parágrafo. Ela procura por ocorrências da string alvo e, se encontradas, imprime a linha e a posição onde a ocorrência foi localizada. O índice é então atualizado para continuar a busca a partir do próximo caractere após a ocorrência encontrada. A função retorna o número total de ocorrências encontradas.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. toCharArray()
&lt;/h2&gt;

&lt;p&gt;O método &lt;strong&gt;toCharArray()&lt;/strong&gt; é utilizado para criar um novo array de caracteres a partir de uma string. O conteúdo deste novo array é inicializado para conter os caracteres presentes na string original, e seu comprimento é igual ao comprimento da string.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sintaxe de toCharArray()
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public char[] toCharArray()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Parâmetro(s)
&lt;/h3&gt;

&lt;p&gt;Nenhum&lt;/p&gt;

&lt;h3&gt;
  
  
  Valor de Retorno
&lt;/h3&gt;

&lt;p&gt;Um array de caracteres é alocado na memória, contendo os caracteres da string original, e uma referência para esse array é retornada.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Utilização prática&lt;/strong&gt; do toCharArray()
&lt;/h3&gt;

&lt;p&gt;Durante operações intensivas de manipulação de strings, frequentemente são criados novos objetos de strings, o que pode ser ineficiente em termos de uso de memória. Uma estratégia eficaz é converter a string em um array de caracteres primeiro, realizar as operações de manipulação necessárias e, posteriormente, converter o array de caracteres de volta para uma string.&lt;/p&gt;

&lt;p&gt;Vejamos um exemplo onde verificamos se uma determinada string é um palíndromo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;String palindrome = "Dot saw I was Tod";
char[] charArray = palindrome.toCharArray();
int len = charArray.length;
boolean isPalindrome = true;

for (int i = 0, j = len - 1; i &amp;lt; j; i++, j--) {
    if (charArray[i] != charArray[j]) {
        isPalindrome = false;
        break;
    }
}

if (isPalindrome) {
    System.out.println("É um palíndromo");
} else {
    System.out.println("Não é um palíndromo");
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. charAt()
&lt;/h2&gt;

&lt;p&gt;O método &lt;strong&gt;charAt()&lt;/strong&gt; permite extrair o caractere presente no índice especificado da string. Esse método é útil quando se deseja verificar o valor de um caractere em um índice específico sem a necessidade de percorrer toda a string.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sintaxe de charAt()
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public char charAt(int index)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Parâmetro(s)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;_ &lt;strong&gt;Index:&lt;/strong&gt; _ índice do caractere na string a ser recuperado&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Valor de Retorno
&lt;/h3&gt;

&lt;p&gt;valor char da String no índice passado como argumento&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Lança&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;IndexOutOfBoundsException&lt;/em&gt; - se o argumento fornecido for negativo ou maior que o comprimento de String.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Utilização prática&lt;/strong&gt; do charAt()
&lt;/h3&gt;

&lt;p&gt;O método &lt;em&gt;charAt()&lt;/em&gt; pode ser empregado, por exemplo, para iterar sobre uma string e contar a frequência de um caractere em particular.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;String frase = "Estou aprimorando minhas habilidades aprendendo fazendo";
char caractereAlvo = 'a';
int contagemCaractere = 0;

for (int i = 0; i &amp;lt; frase.length(); i++) {
    if (frase.charAt(i) == caractereAlvo) {
        contagemCaractere++;
    }
}

System.out.println("A frequência do caractere '" + caractereAlvo + "' é: " + contagemCaractere);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Neste exemplo, o método &lt;em&gt;charAt()&lt;/em&gt; é utilizado para percorrer a string e contar quantas vezes o caractere ‘a’ aparece nela. O resultado é impresso para indicar a frequência desse caractere na string.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. concat()
&lt;/h2&gt;

&lt;p&gt;A string passada é anexada ao final da string especificada.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sintaxe de concat()
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public String concat(String str)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Parâmetro(s)
&lt;/h3&gt;

&lt;p&gt;_ &lt;strong&gt;str:&lt;/strong&gt; _ string a ser anexada ao final de uma string dada&lt;/p&gt;

&lt;h3&gt;
  
  
  Valor de Retorno
&lt;/h3&gt;

&lt;p&gt;Um novo objeto String com a contcatenação da string passada ao final da string dada.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Utilização prática&lt;/strong&gt; do concat()
&lt;/h3&gt;

&lt;p&gt;Aqui está um exemplo usando o método &lt;code&gt;concat()&lt;/code&gt; para construir uma mensagem de boas-vindas personalizada.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import java.util.Scanner;

public class WelcomeMessage {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Digite seu nome: ");
        String nome = scanner.nextLine();

        String saudacao = "Olá, ";
        String mensagem = "Bem-vindo ao nosso sistema!";

        // Usando o método concat() para juntar as strings
        String mensagemPersonalizada = saudacao.concat(nome).concat(". ").concat(mensagem);

        System.out.println(mensagemPersonalizada);

        scanner.close();
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  5. replace()
&lt;/h2&gt;

&lt;p&gt;Usado para substituir caracteres e substrings em uma string.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sintaxe de replace()
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public String replace(char oldChar, char newChar)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Parâmetro(s)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;_ &lt;strong&gt;oldChar:&lt;/strong&gt; _ Caractere que precisa ser substituído&lt;/li&gt;
&lt;li&gt;_ &lt;strong&gt;newChar:&lt;/strong&gt; _ Caractere que substituirá o oldChar&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Valor de Retorno
&lt;/h3&gt;

&lt;p&gt;Um novo objeto String contendo uma string criada substituindo todas as ocorrências de oldChar por newChar.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Utilização prática&lt;/strong&gt; do replace()
&lt;/h3&gt;

&lt;p&gt;Aqui está um exemplo usando o método &lt;code&gt;replace()&lt;/code&gt; para manipular um texto removendo palavras sensíveis.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import java.util.Scanner;

public class CensorText {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Digite um texto: ");
        String textoOriginal = scanner.nextLine();

        String[] palavrasProibidas = {"violento", "ofensivo", "inadequado"};
        String textoCensurado = textoOriginal;

        // Usando o método replace() para substituir palavras proibidas
        for (String palavra : palavrasProibidas) {
            textoCensurado = textoCensurado.replace(palavra, "[CENSURADO]");
        }

        System.out.println("Texto censurado: " + textoCensurado);

        scanner.close();
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  6. substring()
&lt;/h2&gt;

&lt;p&gt;Usado para extrair uma parte de uma string a partir de uma string fornecida. Cria um novo objeto de string sem alterar a string original.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sintaxe do substring()
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public String substring(int beginIndex, int endIndex)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Parâmetro(s)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;beginIndex:&lt;/strong&gt; A busca começa a partir deste índice&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;endIndex:&lt;/strong&gt; A busca termina em endIndex-1&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Valor de Retorno
&lt;/h3&gt;

&lt;p&gt;Um novo objeto de string resultante da parte da string original cortada com base nos índices begin e endIndex.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exceção:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;IndexOutOfBoundsException&lt;/em&gt; - se beginIndex for negativo ou maior que o comprimento deste objeto String.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sobrecarga de variantes&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;public String substring(int beginIndex)&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Utilização prática&lt;/strong&gt; do substring()
&lt;/h3&gt;

&lt;p&gt;É possível identificar todas as subcadeias dentro de uma string específica utilizando o método &lt;em&gt;substring()&lt;/em&gt;. Embora essa não seja a abordagem mais otimizada, ela proporcionará uma compreensão do funcionamento do método substring.&lt;/p&gt;

&lt;p&gt;Aqui está uma implementação do método &lt;em&gt;SubString&lt;/em&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public void SubString(String str, int n) {
    for (int i = 0; i &amp;lt; n; i++) {
        for (int j = i + 1; j &amp;lt;= n; j++) {
            System.out.println(str.substring(i, j));
        }
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Essa implementação percorre a string original, gerando todas as possíveis subcadeias a partir de índices consecutivos. Embora funcione, é importante notar que pode não ser eficiente para strings muito longas devido ao aumento no número de iterações.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. split()
&lt;/h2&gt;

&lt;p&gt;O método &lt;em&gt;split()&lt;/em&gt; é empregado para segmentar a string especificada com base em uma expressão regular. A declaração de um limite pode ser usada para controlar o número de strings resultantes após a divisão.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sintaxe do split()
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public String[] split(String regex, int limit)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Parâmetro(s)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;regex:&lt;/strong&gt; Subcadeia a ser localizada.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;limit:&lt;/strong&gt; A pesquisa inicia a partir deste índice.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Valor de Retorno
&lt;/h3&gt;

&lt;p&gt;Uma matriz contendo cada subcadeia desta string é concluída por uma subcadeia que corresponde à expressão fornecida ou pelo término da string. As subcadeias na matriz são organizadas na sequência em que aparecem na string original.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Exceção&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;PatternSyntaxException&lt;/code&gt; - se a sintaxe da expressão regular for inválida.&lt;/p&gt;

&lt;h3&gt;
  
  
  Variantes Sobrecarregadas
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;public String[] split(String regex)&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Utilização prática&lt;/strong&gt; do split()
&lt;/h3&gt;

&lt;p&gt;Podemos contar o número de palavras presentes em um parágrafo ao dividir a string usando o espaço como delimitador.&lt;/p&gt;

&lt;p&gt;Exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;String str = "Esta string contém cinco palavras";
String[] arrayOfWords = str.split(" ");
System.out.println(arrayOfWords.length);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esse trecho de código divide a string em palavras individuais, representadas como elementos em um array. O resultado é o número de palavras na string original.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. compareTo()
&lt;/h2&gt;

&lt;p&gt;Como programadores Java, frequentemente encontramos a necessidade de ordenar elementos em uma lista ou em uma classe. O método compareTo() é utilizado para comparar duas strings em ordem alfabética.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sintaxe do compareTo()
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public int compareTo(String anotherString)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Parâmetro(s)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;anotherString:&lt;/strong&gt; A string a ser comparada.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Valor de Retorno
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Retorna 0 se a string do argumento for igual à string fornecida.&lt;/li&gt;
&lt;li&gt;Retorna um valor &amp;lt; 0 se a string fornecida for lexicograficamente menor do que a string do argumento.&lt;/li&gt;
&lt;li&gt;Retorna um valor &amp;gt; 0 se a string fornecida for lexicograficamente maior do que a string do argumento.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Utilização prática&lt;/strong&gt; do compareTo()
&lt;/h3&gt;

&lt;p&gt;Algoritmos de ordenação baseados em comparação são amplamente utilizados em diversos contextos.&lt;/p&gt;

&lt;p&gt;Nas instituições educacionais, é comum organizar os alunos com base na ordem crescente de seus primeiros nomes. Caso os primeiros nomes de dois alunos sejam idênticos, a ordenação é determinada pela ordem crescente de seus sobrenomes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Aluno implements Comparable&amp;lt;Aluno&amp;gt; {
    String primeiroNome;
    String sobrenome;

    // Construtor e métodos aqui

    public int compareTo(Aluno aluno) {
        int comparacao = primeiroNome.compareTo(aluno.primeiroNome);
        if (comparacao == 0) {
            return sobrenome.compareTo(aluno.sobrenome);
        }
        return comparacao;
    }
}

public class OrdenarAlunos {
    List&amp;lt;Aluno&amp;gt; alunos = new ArrayList&amp;lt;Aluno&amp;gt;();

    // Adicionar alunos à lista

    Collections.sort(alunos);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nesse exemplo, a classe &lt;code&gt;Aluno&lt;/code&gt; implementa a interface &lt;code&gt;Comparable&lt;/code&gt; para permitir a comparação e ordenação com base nos critérios especificados. A lista de alunos pode ser ordenada usando &lt;code&gt;Collections.sort()&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. strip()
&lt;/h2&gt;

&lt;p&gt;O método &lt;em&gt;strip()&lt;/em&gt; é utilizado para eliminar quaisquer espaços em branco no início e no final da string especificada.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sintaxe do strip()
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public String strip()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Parâmetro(s)
&lt;/h3&gt;

&lt;p&gt;Nenhum&lt;/p&gt;

&lt;h3&gt;
  
  
  Valor de Retorno
&lt;/h3&gt;

&lt;p&gt;Retorna uma nova string que representa o conteúdo desta string original, porém sem espaços em branco iniciais e finais.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Utilização prática&lt;/strong&gt; do strip()
&lt;/h3&gt;

&lt;p&gt;Quando recebemos entradas da camada de apresentação, é crucial garantir que espaços em branco no começo e final da string não afetem os dados reais. Isso assegura que os dados sejam armazenados de maneira consistente no banco de dados e processados no backend.&lt;/p&gt;

&lt;p&gt;O método &lt;em&gt;split()&lt;/em&gt; também pode ser empregado para garantir que nossas entradas estejam livres de qualquer contaminação.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public static void realizarLogin() {
    String nomeDeUsuario = obterNomeDeUsuarioDaInterface(); // " usuario123 "
    String senhaLimpa = senha.strip(); // "abc"

    Conta conta = new Conta(nomeDeUsuario.strip(), senhaLimpa);

    bancoDeDados.salvar(conta);
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nesse exemplo, a função &lt;em&gt;realizarLogin()&lt;/em&gt; exemplifica como utilizar o método &lt;em&gt;strip()&lt;/em&gt; para remover espaços em branco desnecessários de entradas, assegurando a integridade dos dados manipulados e armazenados.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. valueOf()
&lt;/h2&gt;

&lt;p&gt;O método &lt;em&gt;valueOf()&lt;/em&gt; é empregado para obter a representação em forma de string do argumento passado. O &lt;em&gt;valueOf()&lt;/em&gt; possui diversas variações sobrecarregadas que facilitam a conversão de quase qualquer tipo primitivo para uma string.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sintaxe do valueOf()
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public static String valueOf(char[] data)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Parâmetro(s)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;data:&lt;/strong&gt; Matriz de caracteres a ser convertida em uma string.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Valor de Retorno
&lt;/h3&gt;

&lt;p&gt;Retorna um novo objeto de tipo String que contém os dados da matriz como uma representação de string do argumento passado.&lt;/p&gt;

&lt;h3&gt;
  
  
  Variantes sobrecarregadas
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public static String valueOf(boolean b)
public static String valueOf(char c)
public static String valueOf(int i)
public static String valueOf(long l)
public static String valueOf(float f)
public static String valueOf(double d)
public static String valueOf(char[] data)
public static String valueOf(char[] data, int offset, int count)
public static String valueOf(Object obj)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Utilização prática&lt;/strong&gt; do valueOf()
&lt;/h3&gt;

&lt;p&gt;É possível formar uma única sequência combinando todos os elementos de um array de caracteres utilizando o método &lt;em&gt;valueOf()&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;char[] arrayDeCaracteres = { 'a', 'b', 'c', 'd', 'e', 'f', 'g' };
String sequenciaCombinada = String.valueOf(arrayDeCaracteres);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nesse exemplo, a variável &lt;code&gt;sequenciaCombinada&lt;/code&gt; conterá a string “abcdefg”, que é formada pela concatenação dos caracteres no array &lt;code&gt;arrayDeCaracteres&lt;/code&gt;. O método &lt;em&gt;valueOf()&lt;/em&gt; é uma ferramenta útil para converter diversos tipos de dados em representações de strings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Recapitulação
&lt;/h2&gt;

&lt;p&gt;Aqui está um resumo rápido dos métodos de string Java que conquistamos no artigo.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Método Java&lt;/th&gt;
&lt;th&gt;Uso&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;indexOf ()&lt;/td&gt;
&lt;td&gt;Para encontrar o índice da primeira ocorrência de um caractere ou uma cadeia na string dada.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;toCharArray ()&lt;/td&gt;
&lt;td&gt;Para formar uma nova matriz de caracteres a partir desta string&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;charAt ()&lt;/td&gt;
&lt;td&gt;Para obter o caractere no índice especificado&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;concat ()&lt;/td&gt;
&lt;td&gt;Para anexar a string passada ao final da string dada.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;replace ()&lt;/td&gt;
&lt;td&gt;Para substituir todas as ocorrências do caractere / String fornecido pela String fornecida&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;substring ()&lt;/td&gt;
&lt;td&gt;Para obter uma parte de uma string da string dada.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;split ()&lt;/td&gt;
&lt;td&gt;Para dividir a string dada com base na expressão regular fornecida.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;compareTo ()&lt;/td&gt;
&lt;td&gt;Para comparar duas Strings lexicograficamente.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;strip ()&lt;/td&gt;
&lt;td&gt;Para remover todos os espaços em branco finais e iniciais da string dada.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;valueOf ()&lt;/td&gt;
&lt;td&gt;Para retornar a representação de string do argumento passado.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Lista de outros métodos de string úteis para aprendizado adicional
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;contains(CharSequence s)&lt;/li&gt;
&lt;li&gt;isEmpty()&lt;/li&gt;
&lt;li&gt;join()&lt;/li&gt;
&lt;li&gt;repeat()&lt;/li&gt;
&lt;li&gt;startsWith() / endsWith()&lt;/li&gt;
&lt;li&gt;toLowerCase() / toUpperCase()&lt;/li&gt;
&lt;li&gt;indent()&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;As strings são fundamentais na programação e o Java oferece uma classe String robusta com métodos poderosos para sua manipulação. Ao entender essas ferramentas, os desenvolvedores podem criar aplicações mais eficientes e confiáveis.&lt;/p&gt;

&lt;h2&gt;
  
  
  Referências:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;JAIN, S. &lt;a href="https://www.crio.do/blog/string-methods-in-java/" rel="noopener noreferrer"&gt;10 Important String Methods In Java You Must Know.&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;SINGH, P. &lt;a href="https://dev.to/pankaj_singhr/10-most-useful-string-methods-in-java-4lag"&gt;10 most useful string methods in Java.&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>java</category>
      <category>programming</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Big Data com Hadoop: Processamento de Dados em Grande Escala</title>
      <dc:creator>Josafá Marengo</dc:creator>
      <pubDate>Sat, 29 Jul 2023 00:00:00 +0000</pubDate>
      <link>https://dev.to/josafamarengo/big-data-com-hadoop-processamento-de-dados-em-grande-escala-4mgg</link>
      <guid>https://dev.to/josafamarengo/big-data-com-hadoop-processamento-de-dados-em-grande-escala-4mgg</guid>
      <description>&lt;p&gt;Com a crescente geração e disponibilidade de grandes volumes de dados, a necessidade de soluções eficientes para lidar com o processamento e análise de Big Data se tornou imperativa. Nesse contexto, o Apache Hadoop se destaca como uma das principais tecnologias para o processamento de Big Data, oferecendo escalabilidade, tolerância a falhas e recursos avançados para lidar com enormes conjuntos de dados. Nesse artigo, pretendo fazer uma breve apresentação dessa ferramenta. Mas primeiro, o que é essa tão famosa Big Data? &lt;/p&gt;

&lt;h2&gt;
  
  
  O que é Big data?
&lt;/h2&gt;

&lt;p&gt;Big Data consiste em um conjunto de dados maior e mais complexo, especialmente originado de novas fontes de dados, como históricos de serviços, conteúdo de redes sociais, fluxos de cliques em uma página da web, dentre diversas outras. Esse grande volume de dados é usado para resolver problemas de negócios anteriormente insolúveis. &lt;/p&gt;

&lt;h2&gt;
  
  
  O que é o Apache Hadoop?
&lt;/h2&gt;

&lt;p&gt;Como uma proposta para superar os desafios do processamento de grandes quantidades de dados, surge o Apache Hadoop, um framework que permite lidar com volumes massivos e complexos de informações provenientes de diversas fontes. O Hadoop simplifica a gestão desses conjuntos de dados, que são tão vastos que as ferramentas tradicionais de processamento não conseguem lidar com eles de forma eficiente. Com o Hadoop, problemas como integridade dos dados, disponibilidade dos nós, escalabilidade das aplicações e recuperação de falhas são simplificados para os desenvolvedores. A existência de frameworks de código aberto, como o Hadoop e o Spark, têm sido fundamental para impulsionar o crescimento do big data, tornando o trabalho com essa abundância de dados mais acessível e econômico em termos de armazenamento. &lt;/p&gt;

&lt;h2&gt;
  
  
  Arquitetura e componentes do Hadoop &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mLMVlI5O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://analyticsbr.com.br/wp-content/uploads/2020/11/ecossistema-hadoop.png" alt="https://analyticsbr.com.br/wp-content/uploads/2020/11/ecossistema-hadoop.png" width="691" height="554"&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  HDFS: o sistema de arquivos distribuídos do Hadoop
&lt;/h3&gt;

&lt;p&gt;No HDFS, os dados são divididos em blocos de tamanho fixo e cada bloco é replicado em vários nós do cluster. Essa replicação dos dados tem o objetivo de garantir a redundância e a recuperação de falhas. A divisão dos dados em blocos permite que o processamento seja paralelizado e distribuído entre os nós do cluster. O HDFS possui uma arquitetura mestre-escravo. O nó mestre, chamado NameNode, é responsável pelo gerenciamento dos metadados do sistema de arquivos, como informações sobre a localização dos blocos de dados e permissões de acesso. Os nós escravos, chamados DataNodes, são responsáveis pelo armazenamento e recuperação dos blocos de dados. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Rjb1jZOk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://editor.analyticsvidhya.com/uploads/61702hdfspic4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Rjb1jZOk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://editor.analyticsvidhya.com/uploads/61702hdfspic4.png" alt="https://editor.analyticsvidhya.com/uploads/61702hdfspic4.png" width="595" height="475"&gt;&lt;/a&gt; &lt;br&gt;
Quando um arquivo é enviado para o HDFS,inicialmente, o arquivo é guardado localmente em um arquivo temporário. À medida que o arquivo vai crescendo e atinge o tamanho definido para um bloco HDFS (geralmente 128MB na versão 2.0 do Hadoop e 64MB na versão 1.0), ocorre a interação com o NameNode, que retorna ao cliente uma lista com a identificação dos DataNodes onde o bloco deverá ser armazenado. O cliente, então, transfere os dados diretamente para os DataNodes da lista, dando início ao processo de replicação. O HDFS geralmente adota um fator de replicação igual a 3, o que significa que cada bloco será replicado em três DataNodes diferentes para garantir a redundância e a tolerância a falhas. É importante ressaltar que, mesmo que o processo de replicação de milhares de blocos ocorra paralelamente, a replicação de cada bloco, ou seja, a cópia do bloco de dados desde o primeiro até o último DataNode, é sequencial. Durante a leitura dos dados armazenados no HDFS, o cliente interage novamente com o NameNode para obter informações sobre a localização dos blocos de dados. Com base nessas informações, o cliente pode buscar diretamente os blocos de dados nos DataNodes onde estão armazenados. O HDFS é otimizado para leituras sequenciais, o que o torna adequado para aplicações de processamento em lote, onde é comum a necessidade de acessar grandes volumes de dados de forma sequencial. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8PdnyYn2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.cloudduggu.com/hadoop/hdfs/hdfs_architect.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8PdnyYn2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.cloudduggu.com/hadoop/hdfs/hdfs_architect.png" alt="https://www.cloudduggu.com/hadoop/hdfs/hdfs\_architect.png" width="800" height="548"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  MapReduce: o paradigma de programação do Hadoop
&lt;/h3&gt;

&lt;p&gt;Uma das principais características do Hadoop é o paradigma de programação MapReduce, que permite processar dados em paralelo em um cluster de computadores. O paradigma MapReduce divide o processamento em duas etapas principais: o mapeamento (map) e a redução (reduce). Na etapa de mapeamento, os dados são divididos em pares chave-valor e passados por uma função de mapeamento definida pelo desenvolvedor. Essa função é aplicada a cada par chave-valor individualmente, gerando uma lista intermediária de pares chave-valor. Em seguida, na etapa de redução, os pares chave-valor intermediários são agrupados pela chave e passados por uma função de redução. Essa função pode executar várias operações, como soma, contagem, média, entre outras, sobre os valores correspondentes à mesma chave. O resultado final do processo MapReduce é uma lista de pares chave-valor resultante das operações de redução. &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K87JhSIX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.todaysoftmag.com/images/articles/tsm33/large/a11.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K87JhSIX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.todaysoftmag.com/images/articles/tsm33/large/a11.png" alt="https://www.todaysoftmag.com/images/articles/tsm33/large/a11.png" width="800" height="371"&gt;&lt;/a&gt; &lt;br&gt;
O modelo MapReduce oferece uma abordagem poderosa e escalável para o processamento de grandes conjuntos de dados. Ele permite que desenvolvedores escrevam código simples e expressivo para realizar tarefas de processamento distribuído sem se preocupar com os detalhes de gerenciamento de clusters.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hive: processamento de dados em linguagem SQL
&lt;/h3&gt;

&lt;p&gt;O Hive é uma ferramenta do ecossistema Hadoop que permite processar dados por meio de consultas na linguagem SQL (Structured Query Language). Ele fornece uma camada de abstração que permite aos usuários executarem consultas semelhantes a SQL em grandes conjuntos de dados armazenados no Hadoop Distributed File System (HDFS). O Hive traduz essas consultas em tarefas MapReduce, permitindo que os usuários aproveitem a capacidade de processamento distribuído do Hadoop. O Hive é especialmente útil para usuários familiarizados com SQL, fornecendo uma interface familiar para a análise de dados no Hadoop.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pig: plataforma de análise e manipulação de dados
&lt;/h3&gt;

&lt;p&gt;O Pig é outra ferramenta do ecossistema Hadoop que oferece uma plataforma de alto nível para a análise e manipulação de dados. Ele fornece uma linguagem de script chamada Pig Latin, que é projetada para expressar transformações de dados de forma concisa e eficiente. O Pig Latin é compilado em tarefas MapReduce pelo Pig, permitindo o processamento distribuído de grandes volumes de dados no Hadoop. O Pig é particularmente adequado para tarefas de ETL (Extração, Transformação e Carga) e para usuários que preferem uma abordagem de programação de alto nível.&lt;/p&gt;

&lt;h3&gt;
  
  
  Yarn: estrutura de gerenciamento de recursos
&lt;/h3&gt;

&lt;p&gt;O Yarn (Yet Another Resource Negotiator) é um componente-chave do ecossistema Hadoop responsável pelo gerenciamento de recursos do cluster. Ele atua como um escalonador e agendador de tarefas, alocando recursos de computação de forma eficiente para as aplicações em execução no cluster. O Yarn permite que várias estruturas de processamento, como MapReduce e Spark, coexistam no mesmo cluster e compartilhem os recursos disponíveis de forma equilibrada. Ele também oferece suporte para recursos como isolamento de tarefas, tolerância a falhas e monitoramento do uso de recursos no cluster.&lt;/p&gt;

&lt;h3&gt;
  
  
  HBase: banco de dados NoSQL distribuído
&lt;/h3&gt;

&lt;p&gt;O HBase é um banco de dados NoSQL distribuído, projetado para fornecer acesso aleatório rápido aos dados armazenados no Hadoop. Ele é baseado no modelo de dados de chave-valor e oferece escalabilidade horizontal, permitindo o armazenamento e a recuperação eficientes de grandes volumes de dados. O HBase é altamente escalável e tolerante a falhas, permitindo o processamento de dados em tempo real e a realização de operações de leitura e gravação de forma eficiente.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sqoop: integração entre o Hadoop e bancos de dados relacionais
&lt;/h3&gt;

&lt;p&gt;O Sqoop é uma ferramenta do ecossistema Hadoop projetada para facilitar a integração entre o Hadoop e bancos de dados relacionais. Ele permite importar dados de bancos de dados relacionais para o Hadoop e exportar dados do Hadoop para bancos de dados relacionais. O Sqoop suporta várias fontes de dados, como MySQL, Oracle, SQL Server, entre outros, e fornece uma maneira conveniente de transferir dados entre esses sistemas e o Hadoop. Ele ajuda a simplificar o processo de ingestão de dados no Hadoop, permitindo que os usuários aproveitem os recursos de processamento distribuído do Hadoop em conjunto com seus sistemas de banco de dados existentes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Flume: ingestão de dados em tempo real
&lt;/h3&gt;

&lt;p&gt;O Flume é um componente do ecossistema Hadoop projetado para facilitar a ingestão de dados em tempo real no Hadoop. Ele fornece uma arquitetura escalável e confiável para coletar, agregar e mover grandes volumes de dados em tempo real. O Flume suporta várias fontes de dados, como logs de servidores, feeds RSS, streams de redes sociais, entre outros, e permite o envio desses dados para o Hadoop para processamento posterior. Ele é particularmente útil para casos de uso que exigem a ingestão contínua e em tempo real de dados, como monitoramento de logs ou análise de dados de fluxo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kafka: plataforma de streaming distribuído
&lt;/h3&gt;

&lt;p&gt;O Kafka é uma plataforma de streaming distribuído que fornece uma solução escalável para a ingestão, armazenamento e processamento de fluxos contínuos de dados em tempo real. Ele permite que os usuários publiquem e assinem fluxos de dados, garantindo a entrega confiável e eficiente dos dados em um ambiente distribuído. O Kafka é amplamente utilizado para casos de uso de streaming em tempo real, como análise de dados em tempo real, monitoramento de eventos e processamento de mensagens em larga escala.&lt;/p&gt;

&lt;h3&gt;
  
  
  Oozie: sistema de agendamento e fluxo de trabalho
&lt;/h3&gt;

&lt;p&gt;O Oozie é um sistema de agendamento e fluxo de trabalho do ecossistema Hadoop. Ele permite que os usuários definam e executem fluxos de trabalho complexos que envolvem várias etapas e dependências. O Oozie oferece suporte a várias ações, como execução de tarefas MapReduce, execução de scripts Pig, execução de consultas Hive, entre outras, permitindo que os usuários coordenem e agendem facilmente a execução de tarefas no Hadoop. Ele fornece uma interface intuitiva para definir fluxos de trabalho e oferece recursos avançados, como retentativas de tarefas, agendamento baseado em tempo e integração com outras ferramentas do ecossistema Hadoop.&lt;/p&gt;

&lt;h3&gt;
  
  
  ZooKeeper: serviço de coordenação e sincronização
&lt;/h3&gt;

&lt;p&gt;O ZooKeeper é um serviço de coordenação e sincronização do ecossistema Hadoop. Ele fornece um ambiente confiável para coordenar e sincronizar as atividades distribuídas em um cluster Hadoop. O ZooKeeper permite que os aplicativos distribuídos compartilhem informações, coordenem suas atividades e lidem com situações de falha. Ele oferece recursos como eleição de líderes, bloqueios distribuídos, notificações assíncronas e gerenciamento de configurações, fornecendo uma base sólida para a construção de aplicativos distribuídos robustos no ecossistema Hadoop.&lt;/p&gt;

&lt;h3&gt;
  
  
  Apache Spark: processamento de dados em memória
&lt;/h3&gt;

&lt;p&gt;O Apache Spark é um poderoso componente do ecossistema Hadoop que oferece um mecanismo de processamento de dados em memória. Ele fornece uma interface de programação simples e rica para a execução de análises de dados distribuídas em larga escala. O Spark oferece suporte a várias linguagens de programação, como Java, Scala e Python, e fornece bibliotecas extensas para processamento de dados em lotes, processamento de fluxo, aprendizado de máquina e processamento de gráficos. O Spark é conhecido por sua velocidade e eficiência, especialmente para cargas de trabalho que exigem iterações rápidas e acesso rápido aos dados.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;O Apache Hadoop se estabeleceu como uma das principais soluções para o processamento de Big Data, oferecendo escalabilidade, tolerância a falhas e recursos avançados para lidar com grandes volumes de dados. À medida que o mundo do Big Data continua a evoluir, o Hadoop desempenhará um papel crucial na capacidade de organizações e pesquisadores de aproveitar ao máximo o potencial dos dados em larga escala.&lt;/p&gt;

&lt;h2&gt;
  
  
  Referências:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;DEVMEDIA. &lt;a href="https://www.devmedia.com.br/hadoop-fundamentos-e-instalacao/29466" rel="noopener noreferrer"&gt;Hadoop Tutorial: Fundamentos e Instalação do Hadoop.&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;ORACLE. &lt;a href="https://www.oracle.com/br/big-data/what-is-big-data" rel="noopener noreferrer"&gt;O Que é Big Data? | Oracle Brasil.&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;SAS. &lt;a href="https://www.sas.com/pt_br/insights/big-data/hadoop.html" rel="noopener noreferrer"&gt;Hadoop: o que é e qual sua importância?&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;CUNHA, R. &lt;a href="https://www.linkedin.com/pulse/explorando-o-ecossistema-big-data-hadoop-distributed-filesystem-rui/?originalSubdomain=pt" rel="noopener noreferrer"&gt;Explorando o ecossistema Big Data: Hadoop Distributed FileSystem.&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>data</category>
    </item>
    <item>
      <title>Prepare-se para os testes do Linkedin</title>
      <dc:creator>Josafá Marengo</dc:creator>
      <pubDate>Sun, 07 May 2023 00:00:00 +0000</pubDate>
      <link>https://dev.to/josafamarengo/prepare-se-para-os-testes-do-linkedin-5bj8</link>
      <guid>https://dev.to/josafamarengo/prepare-se-para-os-testes-do-linkedin-5bj8</guid>
      <description>&lt;p&gt;No LinkedIn, é possível destacar suas habilidades adicionando-as ao seu perfil. Muitas dessas habilidades oferecem a opção de realizar um teste composto por cerca de 15 perguntas. Ao ser aprovado nesse teste, sua habilidade recebe um selo que atesta seu sucesso. Isso ajuda a demonstrar credibilidade aos visitantes do seu perfil, indicando que você tem conhecimento real no assunto. Se você está se preparando para os testes de habilidades do LinkedIn, uma ferramenta útil e gratuita que pode ajudar é o site que criei, acessível em &lt;a href="https://linkedin-skill-assessments.netlify.app/" rel="noopener noreferrer"&gt;https://linkedin-skill-assessments.netlify.app/&lt;/a&gt;. &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uhoTGl_Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/josafamarengo/skill-assessments/main/src/assets/img/screenshots/home.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uhoTGl_Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/josafamarengo/skill-assessments/main/src/assets/img/screenshots/home.png" alt="https://raw.githubusercontent.com/josafamarengo/skill-assessments/main/src/assets/img/screenshots/home.png" width="800" height="447"&gt;&lt;/a&gt; O site oferece questionários com perguntas de múltipla escolha sobre diversas tecnologias. A interface é simples e fácil de usar, permitindo testar e aprimorar seu conhecimento e compreensão dos conceitos fundamentais relacionados a essas tecnologias. &lt;/p&gt;

&lt;h2&gt;
  
  
  Questionários disponíveis:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AWS Lambda — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/AWS%20Lambda" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de AWS Lambda&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;AWS — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Amazon%20Web%20Services%20(AWS)" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Amazon Web Services&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Accounting — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Accounting" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Accounting&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Adobe Acrobat — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Adobe%20Acrobat" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Adobe Acrobat&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Adobe Illustrator — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Adobe%20Illustrator" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Adobe Illustrator&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Adobe InDesign — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Adobe%20InDesign" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Adobe InDesign&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Adobe Lightroom — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Adobe%20Lightroom" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Adobe Lightroom&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Adobe Photoshop — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Adobe%20Photoshop" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Adobe Photoshop&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Adobe Premiere Pro — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Adobe%20Premiere%20Pro" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Adobe Premiere Pro&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Adobe XD — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Adobe%20XD" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Adobe XD&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;After Effects — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/After%20Effects" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de After Effects&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Metodologias Ágeis — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Agile%20Methodologies" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Agile Methodologies&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Android — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Android" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Android&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Angular — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Angular" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Angular&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Arc GIS — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Arc%20GIS" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Arc GIS&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;AutoCAD — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/AutoCAD" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de AutoCAD&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Autodesk Fusion 360 — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Autodesk%20Fusion%20360" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Autodesk Fusion 360&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Bash — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Bash" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Bash&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;C — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/C%20(Programming%20Language)" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de C&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;C++ — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/C++" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de C++&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;C# — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/C" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de C#&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;CSS — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/CSS" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de CSS&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Cybersecurity — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Cybersecurity%20Assessment" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Cybersecurity&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Django — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Django" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Django&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Eclipse — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Eclipse" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Eclipse&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Frontend — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Front-end%20Development" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Front-end Development&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Git — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Git" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Git&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Go — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Go%20(Programming%20Language)" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Go (Programming Language)&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Google Ads — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Google%20Ads" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Google Ads&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Google Analytics — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Google%20Analytics" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Google Analytics&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Google Cloud Platform — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Google%20Cloud%20Platform%20(GCP)" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Google Cloud Platform (GCP)&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;HTML — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/HTML" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de HTML&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Hadoop — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Hadoop" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Hadoop&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;IT Operations — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/IT%20Operations" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de IT Operations&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;JSON — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/JSON" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de JSON&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Java — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Java" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Java&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;JavaScript — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/JavaScript" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de JavaScript&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Keynote — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Keynote" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Keynote&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Kotlin — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Kotlin" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Kotlin&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Linux — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Linux" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Linux&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Logic Pro — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Logic%20Pro" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Logic Pro&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;MATLAB — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/MATLAB" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de MATLAB&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Machine Learning — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Machine%20Learning" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Machine Learning&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Maven — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Maven" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Maven&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Microsoft Access — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Microsoft%20Access%20Assessment" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Microsoft Access&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Azure — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Microsoft%20Azure" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Microsoft Azure&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Excel — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Microsoft%20Excel" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Microsoft Excel&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Outlook — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Microsoft%20Outlook" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Microsoft Outlook&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Microsoft Power Automate — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Microsoft%20Power%20Automate" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Microsoft Power Automate&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Power BI — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Microsoft%20Power%20BI" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Microsoft Power BI&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Power Point — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Microsoft%20PowerPoint" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Microsoft PowerPoint&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Microsoft Project — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Microsoft%20Project" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Microsoft Project&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Word — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Microsoft%20Word" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Microsoft Word&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;MongoDB — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/MongoDB" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de MongoDB&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;MySQL — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/MySQL" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de MySQL&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;NoSQL — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/NoSQL" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de NoSQL&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Node.js — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Node.js" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Node.js&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Programação Orientada a Objetos — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Object-Oriented%20Programming%20(OOP)" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Object-Oriented Programming (OOP)&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;PHP — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/PHP" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de PHP&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Objective-C — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Objective-C" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Objective-C&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Pro Tools — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Pro%20Tools" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Pro Tools&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Python — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Python%20(Programming%20Language)" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Python&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Quick Books — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/QuickBooks" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de QuickBooks&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;R — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/R%20(Programming%20Language)" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de R&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;REST API — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/REST%20APIs" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de REST APIs&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;React.js — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/React.js" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de React.js&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Revit — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Revit" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Revit&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Ruby on Rails — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Ruby%20on%20Rails" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Ruby on Rails&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;SOLIDWORKS — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/SOLIDWORKS" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de SOLIDWORKS&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Scala — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Scala" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Scala&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;SEO — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Search%20Engine%20Optimization%20(SEO)" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Search Engine Optimization (SEO)&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Share Point — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/SharePoint" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de SharePoint&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Spring Framework — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Spring%20Framework" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Spring Framework&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Swift — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Swift" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Swift&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;T-SQL - &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Transact-SQL%20(T-SQL)" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Transact-SQL (T-SQL)&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Unity — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Unity" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Unity&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Visual Basic for Applications — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Visual%20Basic%20for%20Applications%20(VBA)" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Visual Basic for Applications (VBA)&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Windows Server — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/Windows%20Server" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de Windows Server&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Wordpress — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/WordPress" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de WordPress&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;XML — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/XML" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de XML&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;jQuery — &lt;a href="https://linkedin-skill-assessments.netlify.app/quiz/jQuery" rel="noopener noreferrer"&gt;Clique aqui e acesse o quiz de jQuery&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fVNmy_9o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/josafamarengo/skill-assessments/main/src/assets/img/screenshots/question.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fVNmy_9o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://raw.githubusercontent.com/josafamarengo/skill-assessments/main/src/assets/img/screenshots/question.png" alt="https://raw.githubusercontent.com/josafamarengo/skill-assessments/main/src/assets/img/screenshots/question.png" width="800" height="462"&gt;&lt;/a&gt; Usando esse site como ferramenta complementar, você se sentirá mais confiante para fazer o teste de habilidades no LinkedIn Skill Assessments. Embora o site esteja em inglês, você pode usar uma extensão do navegador para traduzi-lo. As questões usadas nos questionários foram retiradas de um &lt;a href="https://github.com/Ebazhanov/linkedin-skill-assessments-quizzes" rel="noopener noreferrer"&gt;repositório no GitHub do usuário Ebazhanov&lt;/a&gt;. São perguntas que outros usuários responderam ao fazer seus próprios testes. Espero que essa ferramenta possa ajudá-lo a conquistar o selo de competência! Observe que alguns quizzes podem apresentar falhas. Se você notar algo errado, sinta-se à vontade para abrir uma issue no GitHub &lt;a href="https://github.com/josafamarengo/skill-assessments/issues" rel="noopener noreferrer"&gt;clicando aqui&lt;/a&gt;. Você também pode contribuir para o projeto efetuando um Pull Request. Se você gostar do projeto, considere deixar uma estrela no &lt;a href="https://github.com/josafamarengo/skill-assessments" rel="noopener noreferrer"&gt;repositório do GitHub&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>linkedin</category>
      <category>skills</category>
      <category>developer</category>
      <category>career</category>
    </item>
    <item>
      <title>Concurso SERPRO 2023: Edital traz 602 vagas</title>
      <dc:creator>Josafá Marengo</dc:creator>
      <pubDate>Wed, 19 Apr 2023 00:00:00 +0000</pubDate>
      <link>https://dev.to/josafamarengo/concurso-serpro-2023-edital-traz-602-vagas-1bad</link>
      <guid>https://dev.to/josafamarengo/concurso-serpro-2023-edital-traz-602-vagas-1bad</guid>
      <description>&lt;p&gt;Notícia quentinha para quem busca uma carreira estável e desafiadora: acaba de sair o edital do concurso público do SERPRO, uma das maiores empresas de tecnologia do país! Esta pode ser a sua chance de ingressar em uma empresa reconhecida e crescer profissionalmente. Leia mais abaixo sobre os detalhes do concurso e comece já a se preparar para a prova. &lt;/p&gt;

&lt;p&gt;O SERPRO é uma empresa pública que trabalha com soluções tecnológicas para diversos órgãos públicos, prestando serviços na área de tecnologia da informação. Com a evolução constante da tecnologia, a empresa busca profissionais qualificados e atualizados para atender as demandas do mercado. &lt;/p&gt;

&lt;p&gt;O concurso do SERPRO oferece 602 vagas, além de cadastro reserva, com remuneração inicial de R$ 9.025,73, além de diversos benefícios como auxílio-alimentação, auxílio-transporte, plano de saúde, plano odontológico, auxílio-creche, plano de previdência complementar, participação nos lucros e resultados, acesso a ações de educação corporativa e incentivo a programas de pós-graduação e idiomas. &lt;/p&gt;

&lt;p&gt;Para participar do concurso, os candidatos devem possuir diploma, devidamente registrado, de conclusão de curso de graduação na área de Tecnologia, reconhecido e concluído em instituição de nível superior credenciada pelo Ministério da Educação (MEC); ou curso de graduação em qualquer área de formação, reconhecido e concluído em instituição de nível superior credenciada pelo MEC, acrescido de curso de pós-graduação na área de Tecnologia, com carga horária mínima de 360 horas, fornecido por instituição credenciada pelo MEC. &lt;/p&gt;

&lt;p&gt;As provas do concurso do SERPRO são de caráter eliminatório e classificatório e serão realizadas nas capitais dos 26 estados da Federação e no Distrito Federal. O processo seletivo conta com duas provas: prova objetiva e prova de conhecimentos aplicados. &lt;/p&gt;

&lt;p&gt;A prova objetiva é composta por 120 questões, sendo 18 de Língua Portuguesa, 12 de Língua Inglesa, 5 de Estatística e Probabilidade, 10 de Raciocínio Lógico, 5 de Legislação acerca de privacidade e proteção de dados e 70 questões sobre conhecimentos específicos, abordando temas como segurança da informação, processos de desenvolvimento e sustentação de software e tecnologia. &lt;/p&gt;

&lt;p&gt;A prova de conhecimentos aplicados é uma etapa de seleção que avalia a habilidade prática do candidato em desenvolver sistemas de computação, incluindo a análise de requisitos, programação de código-fonte e construção de algoritmos com ou sem acesso a banco de dados. Será avaliado, entre outros fatores, o conhecimento da linguagem de programação utilizada, incluindo sintaxe e boas práticas de desenvolvimento. O candidato deve estar apto a realizar várias ações na mesma prova, como desenvolver um programa a partir de uma especificação, refatorar um código-fonte disponibilizado ou elaborar o teste unitário de um código-fonte disponibilizado. A prova é eliminatória e classificatória e valerá 100 pontos. &lt;/p&gt;

&lt;p&gt;Os candidatos que solicitarem concorrer às vagas reservadas às pessoas com deficiência serão avaliados por uma avaliação biopsicossocial e os candidatos negros terão um procedimento de heteroidentificação complementar à autodeclaração. Os candidatos aprovados nas provas serão contratados sob a Consolidação das Leis do Trabalho (CLT) e estarão subordinados a todas as suas normas. Aos empregados do SERPRO é ofertada a possibilidade de modalidade de trabalho remoto, o que facilita a conciliação entre a vida profissional e pessoal. &lt;/p&gt;

&lt;p&gt;As inscrições serão abertas a partir do dia 24/4/2023 e seguirão até o dia 2/6/2023. A prova objetiva, primeira etapa do processo seletivo, será realizada no dia 23/7/2023. Já a prova de conhecimentos aplicados, segunda fase do concurso, será realizada nos dias 26 e 27/8/2023. É importante que os candidatos fiquem atentos aos prazos e se preparem adequadamente para garantir um bom desempenho nas provas. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://josafa.com.br/assets/documents/ED_1_SERPRO_2023_ABERTURA.PDF" rel="noopener noreferrer"&gt;Acesse aqui o edital do SERPRO&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Concluindo, o concurso do SERPRO é uma ótima oportunidade para profissionais qualificados que buscam estabilidade e uma carreira sólida no setor de tecnologia da informação. Com uma boa remuneração e benefícios, além de um ambiente de trabalho inovador e desafiador, o SERPRO oferece a chance de desenvolvimento profissional em uma empresa referência na área de tecnologia, com oportunidades de aprendizado e crescimento contínuo. Para aqueles que possuem as habilidades e conhecimentos necessários para desempenhar as funções exigidas no concurso, essa é uma excelente chance de ingressar em uma carreira promissora e garantir estabilidade no mercado de trabalho.&lt;/p&gt;

</description>
      <category>concursos</category>
      <category>desenvolvedores</category>
    </item>
    <item>
      <title>Por qual linguagem de programação começar.</title>
      <dc:creator>Josafá Marengo</dc:creator>
      <pubDate>Mon, 17 Apr 2023 12:39:16 +0000</pubDate>
      <link>https://dev.to/josafamarengo/por-qual-linguagem-de-programacao-comecar-2hpp</link>
      <guid>https://dev.to/josafamarengo/por-qual-linguagem-de-programacao-comecar-2hpp</guid>
      <description>&lt;p&gt;Se você está pensando em começar a aprender programação, provavelmente se perguntou qual linguagem de programação deve aprender primeiro. A verdade é que não existe uma resposta única para essa pergunta, pois cada linguagem de programação tem suas próprias vantagens e desvantagens, e a escolha depende muito do seu objetivo, do tipo de projeto que você deseja realizar e da sua experiência prévia. No entanto, existem algumas linguagens de programação amplamente utilizadas e consideradas mais acessíveis para iniciantes. Neste artigo, apresento algumas das linguagens de programação mais populares e dou uma visão geral de suas características e usos. &lt;/p&gt;

&lt;h2&gt;
  
  
  Python
&lt;/h2&gt;

&lt;p&gt;Python é uma linguagem de programação interpretada, de alto nível e multiplataforma, que cresce em popularidade nos últimos anos. Uma das razões para isso é a sua sintaxe clara e concisa, que torna a linguagem fácil de aprender e usar. Python é bastante versátil e pode ser utilizado em muitas áreas, desde o desenvolvimento web e científico até a automação de tarefas e a inteligência artificial. Muitas bibliotecas e frameworks foram desenvolvidos em Python, tornando-a uma linguagem de programação muito utilizada na indústria. Uma das principais vantagens do Python é a sua grande comunidade, que desenvolve e mantém uma grande variedade de bibliotecas e ferramentas de suporte para a linguagem. Isso significa que é possível encontrar soluções para uma ampla variedade de problemas, além de recursos e materiais de aprendizado facilmente. Python também é uma das linguagens de programação mais utilizadas para análise de dados e machine learning, graças às suas bibliotecas especializadas, como o Pandas e o Scikit-Learn. Se você está interessado em ciência de dados ou inteligência artificial, o Python pode ser uma ótima escolha. &lt;/p&gt;

&lt;h2&gt;
  
  
  JavaScript
&lt;/h2&gt;

&lt;p&gt;JavaScript é uma linguagem de programação criada para ser executada em navegadores web. Ela é amplamente utilizada para o desenvolvimento de aplicativos web, animações e jogos interativos. Uma das vantagens do JavaScript é a sua flexibilidade. Ela pode ser utilizada tanto no lado do cliente, em conjunto com o HTML e o CSS, como no lado do servidor, por meio do Node.js. Além disso, ela é uma linguagem interpretada, o que significa que é possível testar e executar o código rapidamente, sem a necessidade de compilação. JavaScript é uma linguagem muito popular e existem muitos recursos e ferramentas disponíveis para desenvolvedores, incluindo bibliotecas, frameworks e plataformas de desenvolvimento integrado. Muitos projetos de código aberto são escritos em JavaScript, tornando a sua comunidade de desenvolvedores muito ativa e colaborativa. Por fim, JavaScript é uma das principais linguagens de programação utilizadas para desenvolvimento de aplicações web responsivas e interativas, tornando-a uma excelente escolha para quem deseja desenvolver aplicações web modernas e dinâmicas. &lt;/p&gt;

&lt;h2&gt;
  
  
  Java
&lt;/h2&gt;

&lt;p&gt;Java é uma das linguagens de programação mais utilizadas em todo o mundo, principalmente em sistemas empresariais e de grande escala. É uma linguagem de programação orientada a objetos, de alto nível e multiplataforma. Uma das principais vantagens do Java é a sua portabilidade. Por ser uma linguagem que funciona em uma máquina virtual, ela consegue rodar em diversos sistemas operacionais diferentes, sem a necessidade de recompilação do código. Isso torna o desenvolvimento em Java mais flexível e escalável. Java também é conhecida pela sua estabilidade e confiabilidade. Por ter sido desenvolvida visando ser uma linguagem robusta e segura, ela é utilizada em muitos projetos críticos, como sistemas bancários e financeiros. Outra vantagem do Java é a sua grande comunidade de desenvolvedores e a ampla disponibilidade de recursos, ferramentas e frameworks. É possível encontrar muitas bibliotecas e frameworks em Java para praticamente todas as necessidades, desde o desenvolvimento web até o desenvolvimento de jogos e aplicativos móveis. Por fim, a popularidade do Java também significa que existem muitas oportunidades de trabalho para desenvolvedores que conhecem bem a linguagem. Se você está interessado em trabalhar em grandes empresas ou em projetos críticos, aprender Java pode ser uma ótima escolha. &lt;/p&gt;

&lt;h2&gt;
  
  
  Kotlin
&lt;/h2&gt;

&lt;p&gt;Kotlin é uma linguagem de programação relativamente nova, criada pela JetBrains em 2011, que tem se tornado cada vez mais popular nos últimos anos. Ela é uma linguagem de programação multiplataforma que pode ser utilizada tanto para desenvolvimento mobile, como para desenvolvimento web e desktop. Uma das principais vantagens do Kotlin é a sua simplicidade, com uma sintaxe limpa e clara que ajuda a reduzir a quantidade de código necessário para escrever um programa. Além disso, o Kotlin é totalmente interoperável com o Java, o que significa que é possível utilizar bibliotecas e frameworks desenvolvidos em Java em projetos em Kotlin. Outra característica interessante do Kotlin é que ela foi projetada para tornar a programação mais segura e menos propensa a erros, por meio da eliminação de algumas armadilhas comuns presentes em outras linguagens de programação. O Kotlin é bastante utilizado no desenvolvimento de aplicativos para Android, e muitas empresas estão migrando seus aplicativos para essa linguagem devido a suas vantagens em relação ao Java. Se você está interessado em desenvolvimento mobile, o Kotlin pode ser uma excelente escolha. &lt;/p&gt;

&lt;h2&gt;
  
  
  C++
&lt;/h2&gt;

&lt;p&gt;C++ é uma linguagem de programação de alto desempenho que é utilizada principalmente em sistemas operacionais, jogos, softwares de edição de imagem e vídeo, e outros aplicativos que precisam de alta performance. Ela é considerada uma evolução da linguagem C e oferece recursos adicionais, como orientação a objetos, sobrecarga de operadores e manipulação de exceções. A sintaxe de C++ pode ser mais complexa em comparação com outras linguagens de programação, como Python e Ruby. Além disso, C++ exige mais conhecimento em conceitos de programação, como gerenciamento de memória e ponteiros. No entanto, se você deseja se tornar um programador de jogos, desenvolvedor de sistemas operacionais ou trabalhar com aplicações que exigem alta performance, C++ é uma linguagem de programação essencial para aprender. Assim como outras linguagens de programação, C++ tem uma grande comunidade de desenvolvedores e uma ampla gama de bibliotecas e frameworks disponíveis para facilitar o desenvolvimento. Embora possa levar mais tempo para aprender em comparação com outras linguagens, C++ pode ser uma escolha valiosa para desenvolvedores que desejam se especializar em áreas específicas de programação. &lt;/p&gt;

&lt;h2&gt;
  
  
  Ruby
&lt;/h2&gt;

&lt;p&gt;Ruby é uma linguagem de programação orientada a objetos, que é amplamente utilizada em desenvolvimento web e em projetos de automação de tarefas. Uma das principais características da linguagem Ruby é a sua sintaxe elegante e fácil de entender, que ajuda a tornar o código mais legível e conciso. Outra vantagem do Ruby é a grande quantidade de bibliotecas e frameworks disponíveis, que ajudam a facilitar o desenvolvimento de aplicativos web e tarefas de automação. Algumas das bibliotecas e frameworks mais populares incluem Ruby on Rails, Sinatra e Rake. Assim como outras linguagens de programação, Ruby também tem uma grande comunidade de desenvolvedores e usuários ativos, que compartilham seus conhecimentos e ajudam a melhorar a linguagem. Além disso, Ruby é uma linguagem de programação dinâmica, o que significa que as variáveis podem ser alteradas em tempo de execução, facilitando a escrita de código mais flexível e adaptável. Embora seja menos comum em aplicações de alto desempenho ou de baixo nível, Ruby é uma excelente escolha para iniciantes que desejam aprender programação ou para desenvolvedores que trabalham em projetos de desenvolvimento web e automação de tarefas. &lt;/p&gt;

&lt;h2&gt;
  
  
  PHP
&lt;/h2&gt;

&lt;p&gt;PHP é uma linguagem de programação de código aberto, amplamente utilizada em desenvolvimento web. É especialmente adequada para o desenvolvimento de sites dinâmicos e aplicações web baseadas em banco de dados. Uma das principais vantagens do PHP é que ele pode ser integrado com facilidade em páginas HTML, permitindo a criação de conteúdo dinâmico e personalizado. Outra vantagem do PHP é a grande quantidade de recursos disponíveis na web, como fóruns de discussão, tutoriais e documentação, o que facilita o aprendizado da linguagem e a resolução de problemas. Além disso, o PHP é compatível com diversos bancos de dados, permitindo a criação de aplicativos web robustos e escaláveis. Embora o PHP tenha algumas limitações, como a velocidade de execução em relação a outras linguagens de programação, a sua simplicidade e facilidade de aprendizado o tornam uma excelente escolha para iniciantes que desejam aprender programação web ou para desenvolvedores que desejam criar aplicativos web dinâmicos e personalizados. &lt;/p&gt;

&lt;h2&gt;
  
  
  Swift
&lt;/h2&gt;

&lt;p&gt;Swift é uma linguagem de programação desenvolvida pela Apple em 2014 para criar aplicativos para seus sistemas operacionais, como iOS, macOS, watchOS e tvOS. A linguagem é considerada mais fácil de aprender do que Objective-C, a linguagem de programação anteriormente usada pela Apple para desenvolver aplicativos iOS. Swift é uma linguagem de programação orientada a objetos e funcional, o que significa que ela suporta tanto o paradigma de programação orientada a objetos quanto o paradigma de programação funcional. A sintaxe do Swift é muito limpa e simples, o que torna mais fácil para os desenvolvedores aprender e escrever código com mais rapidez. Uma das principais vantagens do Swift é que ele foi projetado para ser mais seguro e robusto do que outras linguagens de programação, evitando erros comuns que podem ocorrer em outras linguagens. Além disso, o Swift tem uma comunidade ativa de desenvolvedores, que contribuem para a criação de bibliotecas e frameworks para facilitar o desenvolvimento de aplicativos. &lt;/p&gt;

&lt;p&gt;É importante lembrar que a escolha da linguagem de programação para aprender depende muito dos seus objetivos e preferências. Não há uma escolha certa ou errada. O importante é escolher uma linguagem que atenda às suas necessidades e se dedicar ao estudo e prática para se tornar um bom programador. Com o tempo e a experiência, você poderá aprender outras linguagens e se tornar um programador mais completo. Independentemente da linguagem escolhida, é fundamental ter uma boa compreensão de conceitos fundamentais de programação, como estruturas de dados, algoritmos e paradigmas de programação. A prática regular e a colaboração com outros programadores também podem ajudar a aprimorar suas habilidades e conhecimentos.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>13 Extensões do Chrome para Desenvolvedores</title>
      <dc:creator>Josafá Marengo</dc:creator>
      <pubDate>Mon, 17 Apr 2023 12:36:36 +0000</pubDate>
      <link>https://dev.to/josafamarengo/13-extensoes-do-chrome-para-desenvolvedores-cf0</link>
      <guid>https://dev.to/josafamarengo/13-extensoes-do-chrome-para-desenvolvedores-cf0</guid>
      <description>&lt;p&gt;Os profissionais de TI precisam estar sempre atualizados e acompanhar as novidades e tendências da tecnologia. Para isso, algumas extensões do Google Chrome podem ser uma grande ajuda. Neste artigo, vamos listar as melhores extensões para profissionais de TI que podem ajudar a aumentar a produtividade, facilitar o trabalho e melhorar a segurança. &lt;/p&gt;

&lt;h2&gt;
  
  
  JSON Lite: &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjosafa.com.br%2Fassets%2Fimg%2Fjson-lite.jpg" alt="Extensão JSON Lite" width="800" height="400"&gt;
&lt;/h2&gt;

&lt;p&gt;Essa extensão é útil para desenvolvedores que trabalham com arquivos JSON. Ela formata automaticamente arquivos JSON para que eles sejam mais fáceis de ler e entender. Ela possui recursos como realce de sintaxe, dobrar/desdobrar objetos, filtrar dados, etc. que facilitam a navegação e análise de dados em arquivos JSON. &lt;a href="https://chrome.google.com/webstore/detail/json-lite/acacmjcicejlmjcheoklfdchempahoag?hl=pt-br" rel="noopener noreferrer"&gt;Baixe a extensão JSON Lite&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Stackoverflow power user: &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjosafa.com.br%2Fassets%2Fimg%2Fso.jpg" alt="StackOverflow Power User" width="800" height="400"&gt;
&lt;/h2&gt;

&lt;p&gt;StackOverflow Power User é uma extensão para o navegador Google Chrome que fornece recursos avançados para usuários do site Stack Overflow. Ela permite aos usuários realizar buscas mais avançadas, filtrar resultados, acessar rápidamente seus favoritos e recursos recentes, bem como ver as estatísticas do perfil do usuário. Além disso, a extensão oferece uma interface mais intuitiva e aprimorada para a visualização de perguntas e respostas no Stack Overflow. A StackOverflow Power User é uma ferramenta valiosa para programadores e desenvolvedores que usam o Stack Overflow com frequência e procuram melhorar sua experiência no site. &lt;a href="https://chrome.google.com/webstore/detail/stacBkoverflow-power-user/dghoicnlchonhhkccfmjpjconhpajhdg?hl=pt-br" rel="noopener noreferrer"&gt;Baixe a extensão StackOverflow Power User&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Octotree &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjosafa.com.br%2Fassets%2Fimg%2Foctotree.jpg" alt="Octotree" width="800" height="400"&gt;
&lt;/h2&gt;

&lt;p&gt;Com Octotree, você pode explorar facilmente os arquivos e diretórios de um repositório no lado esquerdo da tela. Isso permite uma navegação mais rápida e eficiente ao revisar o código e ajuda a melhorar a produtividade. Além disso, Octotree suporta várias outras plataformas de hospedagem de código, como GitLab e Bitbucket. &lt;a href="https://chrome.google.com/webstore/detail/octotree-github-code-tree/bkhaagjahfmjljalopjnoealnfndnagc?hl=pt-br" rel="noopener noreferrer"&gt;Baixe a extensão Octotree&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Material Icons for Github: &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjosafa.com.br%2Fassets%2Fimg%2Fmi.jpg" alt="Github Dark" width="800" height="400"&gt;
&lt;/h2&gt;

&lt;p&gt;Material Icons for Github é uma extensão para o navegador Google Chrome que adiciona ícones do Google Material Design aos repositórios do Github. Isso torna mais fácil para os usuários identificarem os tipos de arquivos na lista de arquivos de um repositório do Github. Além disso, a extensão melhora a aparência geral dos repositórios do Github, tornando-os mais visuais e atraentes. Esta extensão é especialmente útil para desenvolvedores e programadores que usam o Github com frequência e desejam uma experiencia de usuário mais agradável e enriquecedora. &lt;a href="https://chrome.google.com/webstore/detail/material-icons-for-github/bggfcpfjbdkhfhfmkjpbhnkhnpjjeomc?hl=pt-br" rel="noopener noreferrer"&gt;Baixe a extensão Material Icons for Github&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Vimium
&lt;/h2&gt;

&lt;p&gt;Vimium é uma extensão do Google Chrome que adiciona recursos de navegação baseados em atalhos de teclado ao navegador. Com Vimium, você pode navegar na web sem usar o mouse, aumentando sua velocidade e eficiência. Além disso, ele oferece muitos comandos de teclado para facilitar as tarefas de navegação, como mudar de guia, abrir links em novas guias, rolar páginas, etc. Vimium é uma opção popular para usuários avançados e aqueles que desejam aumentar sua produtividade na navegação na web. &lt;a href="https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb?hl=pt-br" rel="noopener noreferrer"&gt;Baixe a extensão Vimium&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  ColorZilla &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjosafa.com.br%2Fassets%2Fimg%2Fcolorzilla.jpg" alt="ColorZilla" width="800" height="400"&gt;
&lt;/h2&gt;

&lt;p&gt;Com ColorZilla, você pode facilmente extrair cores de qualquer página web e usá-las em suas próprias criações. Além disso, ele oferece uma paleta de cores avançada, uma ferramenta de gradients e uma ferramenta Eye Dropper para selecionar cores exatas na tela. ColorZilla é uma ferramenta valiosa para designers, desenvolvedores web e qualquer pessoa interessada em trabalhar com cores na web. &lt;a href="https://chrome.google.com/webstore/detail/colorzilla/bhlhnicpbhignbdhedgjhgdocnmhomnp?hl=pt-br" rel="noopener noreferrer"&gt;Baixe a extensão ColorZilla&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  GoFullPage: &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjosafa.com.br%2Fassets%2Fimg%2Fgfp-2.jpg" alt="gfp-2.jpg" width="800" height="400"&gt;
&lt;/h2&gt;

&lt;p&gt;GoFullPage é uma extensão do Google Chrome que permite capturar screenshots de páginas web inteiras com facilidade. Com ela, você pode capturar uma imagem de toda a página, incluindo partes que não estão visíveis na tela, e salvar a imagem como PDF ou PNG. Além disso, a extensão também permite editar e marcar a imagem antes de salvar ou compartilhar. Isso serve para documentar problemas de design ou para fazer anotações sobre uma página. &lt;a href="https://chrome.google.com/webstore/detail/gofullpage-full-page-scre/fdpohaocaechififmbbbbbknoalclacl?hl=pt-br" rel="noopener noreferrer"&gt;Baixe a extensão GoFullPage&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  One Tab: &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjosafa.com.br%2Fassets%2Fimg%2Fone-tab.jpg" alt="Extensão do Chrome One Tab" width="800" height="400"&gt;
&lt;/h2&gt;

&lt;p&gt;One Tab é uma extensão do Google Chrome que permite agrupar todas as abas abertas em uma única página. Com ele, você pode salvar as abas em um grupo e restaurá-las posteriormente, o que economiza memória do navegador e facilita a organização das suas abas. Além disso, você pode compartilhar o grupo de abas com outras pessoas através de um link. &lt;a href="https://chrome.google.com/webstore/detail/onetab/chphlpgkkbolifaimnlloiipkdnihall?hl=pt-br" rel="noopener noreferrer"&gt;Baixe a extensão One Tab&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  LanguageTool: &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjosafa.com.br%2Fassets%2Fimg%2Flt.jpg" alt="lt.jpg" width="800" height="400"&gt;
&lt;/h2&gt;

&lt;p&gt;Essa extensão é uma ferramenta de correção gramatical e ortográfica para o Chrome. O LanguageTool encontra vários erros que um corretor ortográfico simples não consegue detectar, como trocar mas/mais, um/uma ou palavras repetidas, e ele pode detectar alguns problemas gramaticais. O LanguageTool suporta mais de 25 idiomas, incluindo Inglês, Espanhol, Francês, Alemão, Polonês e Russo. &lt;a href="https://chrome.google.com/webstore/detail/grammar-spell-checker%E2%80%94lan/oldceeleldhonbafppcapldpdifcinji?hl=pt-br" rel="noopener noreferrer"&gt;Baixe a extensão LanguageTool&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Bitwarden: &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjosafa.com.br%2Fassets%2Fimg%2Fbit.jpg" alt="bit.jpg" width="800" height="400"&gt;
&lt;/h2&gt;

&lt;p&gt;A ameaça de roubo de senhas é uma preocupação séria. Todos os dias, sites e aplicativos que você usa são vulneráveis a ataques. Vazamentos de segurança ocorrem e suas senhas podem ser roubadas. Se você reutiliza as mesmas senhas em diferentes aplicativos e sites, os hackers podem facilmente acessar sua conta de e-mail, banco e outras contas importantes. Os especialistas em segurança recomendam usar uma senha única e gerada aleatoriamente para todas as contas que você cria. Como você mantém todas essas senhas sob controle? O Bitwarden torna fácil para você criar, armazenar e acessar todas as suas senhas. O Bitwarden armazena todas as suas credenciais em um cofre de segurança encriptado, sincronizado entre todos os seus dispositivos. Como as credenciais são completamente encriptadas antes de sair de seu dispositivo, apenas você tem acesso aos seus dados. Nem mesmo a equipe do Bitwarden pode lê-los. Suas informações são protegidas por encriptação AES-256 bits, salted hashing e PBKDF2 SHA-256. &lt;a href="https://chrome.google.com/webstore/detail/bitwarden-free-password-m/nngceckbapebfimnlniiiahkandclblb?hl=pt-br" rel="noopener noreferrer"&gt;Baixe a extensão Bitwarden&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Enhancer for YouTube: &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjosafa.com.br%2Fassets%2Fimg%2Fyt.jpg" alt="yt.jpg" width="800" height="400"&gt;
&lt;/h2&gt;

&lt;p&gt;Enhancer for Youtube é uma extensão para o navegador Google Chrome que permite melhorar a experiência do usuário ao assistir vídeos no site do YouTube. Ela inclui recursos como ajuste automático da qualidade do vídeo, bloqueio de anúncios, modo de tela cheia personalizável, controle de reprodução rápida e muito mais. Esta extensão é projetada para tornar a navegação e visualização de vídeos no YouTube mais fácil e agradável para o usuário. &lt;a href="https://chrome.google.com/webstore/detail/enhancer-for-youtube/ponfpcnoihfmfllpaingbgckeeldkhle?hl=pt-br" rel="noopener noreferrer"&gt;Baixe a extensão Enhancer for YouTube&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Notion Clipper: &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjosafa.com.br%2Fassets%2Fimg%2Fnotion.jpg" alt="notion.jpg" width="800" height="400"&gt;
&lt;/h2&gt;

&lt;p&gt;Notion Web Clipper é uma extensão para o Google Chrome que permite aos usuários salvar páginas da web, notas e informações importantes diretamente no aplicativo Notion. Com esta extensão, é possível clicar em um único botão para salvar uma página inteira, selecionar apenas partes da página ou salvar uma imagem. Além disso, os usuários podem adicionar notas, tags e organizar suas coleções de informações de maneira eficiente dentro do Notion. A Notion Web Clipper é uma ferramenta útil para pessoas que desejam manter suas informações organizadas e acessíveis em um único lugar. &lt;a href="https://chrome.google.com/webstore/detail/notion-web-clipper/knheggckgoiihginacbkhaalnibhilkk?hl=pt-br" rel="noopener noreferrer"&gt;Baixe a extensão Notion Clipper&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Marinara: &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fjosafa.com.br%2Fassets%2Fimg%2Fmarinara-2.jpg" alt="marinara-2.jpg" width="800" height="400"&gt;
&lt;/h2&gt;

&lt;p&gt;Essa extensão é uma ferramenta de gerenciamento de tempo que ajuda a manter o foco e a maximizar a produtividade. Ela divide o tempo em sessões de trabalho e descanso e ajuda a manter o ritmo durante o dia. &lt;a href="https://chrome.google.com/webstore/detail/marinara-pomodoro%C2%AE-assist/lojgmehidjdhhbmpjfamhpkpodfcodef?hl=pt-br" rel="noopener noreferrer"&gt;Baixe a extensão Marinara&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;As extensões do Google Chrome são ferramentas valiosas para os desenvolvedores, oferecendo uma variedade de recursos que ajudam a melhorar a produtividade, facilitar o processo de desenvolvimento e otimizar a experiência do usuário final. Elas são uma parte fundamental da rotina de trabalho de muitos desenvolvedores. Ao escolher as extensões certas para as suas necessidades específicas, é possível aproveitar ao máximo o poder do Google Chrome e alcançar seus objetivos de desenvolvimento com mais eficiência. Compartilhe este artigo com seus colegas e amigos da comunidade de tecnologia e ajude a espalhar o conhecimento sobre essas ferramentas poderosas. Juntos, podemos tornar nosso dia a dia de trabalho muito mais fácil e agradável!&lt;/p&gt;

</description>
      <category>devto</category>
      <category>announcement</category>
      <category>web3</category>
      <category>blockchain</category>
    </item>
  </channel>
</rss>
