Come pegar a primeira letra de uma String em java
Strings
28 Respostas
String string = "String";
String parte = string.substring(0, 1);
System.out.println(parte);
public static void main(String[] args){
String nome = "andrade84";
System.out.println(nome.charAt(0));
}
Existem várias formas de você fazer isso…
A que eu mais gostei é quando criam uma Classe que irá possuir um método
que é uma ferramenta para isso, assim no seu projeto você só precisa importar
essa classe e usar suas ferramentas preferidas em forma de métodos.
O que eu mais gostei foi trabalhar com arrays pois assim ficamos perto da orientação
com objetos, cast de tipos, e dentre outros que são muito usados em padrões de projeto.
Existem várias formas de você fazer isso…A que eu mais gostei é quando criam uma Classe que irá possuir um método
que é uma ferramenta para isso, assim no seu projeto você só precisa importar
essa classe e usar suas ferramentas preferidas em forma de métodos.O que eu mais gostei foi trabalhar com arrays pois assim ficamos perto da orientação
com objetos, cast de tipos, e dentre outros que são muito usados em padrões de projeto.
Não confunda o rapaz, pra que criar uma nova classe e métodos, sendo que já existem formas simples de fazer isso no java.
Utilize as maneiras citadas a cima, como gosto de ser objetivo, ficaria com a segunda opção.
Artur Martini
Existem várias formas de você fazer isso...A que eu mais gostei é quando criam uma Classe que irá possuir um método
que é uma ferramenta para isso, assim no seu projeto você só precisa importar
essa classe e usar suas ferramentas preferidas em forma de métodos.O que eu mais gostei foi trabalhar com arrays pois assim ficamos perto da orientação
com objetos, cast de tipos, e dentre outros que são muito usados em padrões de projeto.Não confunda o rapaz, pra que criar uma nova classe e métodos, sendo que já existem formas simples de fazer isso no java.
Utilize as maneiras citadas a cima, como gosto de ser objetivo, ficaria com a segunda opção.
Artur Martini
É bom ler a mensagem toda antes de dizer que estou querendo confundir...
Como eu disse existem várias formas de fazer isso ou seja eu não disse que as formas acima estão erradas,
pelo contrário são ótimas....
Minha intenção é ajudar o garoto a já ir acostumando com padrões de projeto...
Traduzindo para não gerar discussão...
Tu pega essas linhas:
String nome = "andrade84";
System.out.println(nome.charAt(0));
cria uma Classe tipo assim
public class Ferramentas{
}
Cria um método dentro dela com o nome da tarefa que ele faz,
e coloca as duas linhas que fazem a tarefa e depois retorna o resultado seja por impressão na tela ou com o return mesmo
vou dar o nome de retornaPrimeiraLetra
aí vai ficar assim:
public class Ferramentas{
//imprime primeira letra
public void imprimePrimeiraLetra(String texto){
String nome = "andrade84";
System.out.println(nome.charAt(0));
}
//retorna primeira letra para quem chamou
public String imprimePrimeiraLetra(String texto){
String nome = "andrade84";
return nome;
}
}
}
assim para você usar a ferramenta tu faz o seguinte
cria a classe main
pede para o user digitar o nome e pega com entrada via Scanner.input
depois manda isso para o objeto da classe ferramentas e chama o método que quer usar.
demonstrando abaixo:
Classe Main:
package teste;
import teste.Ferramentas;
public class Main {
public static void main(String[] args) {
//variável com nome setado manualmente ou recebido do Scanner
String nome = "Tiago";
//variável do tipo char para receber o retorno do método que retorna a primeira letra
Character letraSeparada;
//cria um objeto da classe ferramentas para poder usar as ferramentas
//que estão lá.
Ferramentas primeiraLetra = new Ferramentas();
//chama o método imprimePrimeiraLetra passando o nome como argumento
//o método imprimirá a primeira letra na saída do console
primeiraLetra.imprimePrimeiraLetra(nome);
//chama o método primeiraLetra passando o nome como argumento
//o método retornará a primeira letra para quem o chamou, no caso para letraSeparada
letraSeparada = primeiraLetra.retornaPrimeiraLetra(nome);
}
}
Classe Ferramentas
package teste;
public class Ferramentas {
//imprime primeira letra
public void imprimePrimeiraLetra(String nome){
String auxiliar = nome;
System.out.println(auxiliar.charAt(0));
//ou então pode deixar somenta a linha abaixo, pois vai funcionar
System.out.println(nome.charAt(0));
}
//retorna primeira letra para quem chamou
public Character retornaPrimeiraLetra(String nome){
Character auxiliar;
auxiliar = nome.charAt(0);
return auxiliar;
}
}
Lembrando que se estiverem no mesmo pacote, não precisa usar o import...
só coloquei para fins didáticos.
abraço
public class Ferramentas{
private String frase;
public void setFrase(String frase){
this.frase = frase;
}
public char getLetra(){
return frase.charAt(0);
}
@Override
public String toString(){
return "Método que retorna a primeira letra da Frase.....";
}
}
public class TesteFerramentas{
public static void main(String[] args){
String frase = "Sempre é recomendavel utilizar Setter e Getter";
Ferramentas obj = new Ferramentas();
obj.setFrase(frase);
System.out.println(obj.toString() + "\n" + frase);
System.out.println("Primeira letra da Frase é: " + obj.getLetra());
}
}
public class Ferramentas{ private String frase; public void setFrase(String frase){ this.frase = frase; } public char getLetra(){ return frase.charAt(0); } @Override public String toString(){ return "Método que retorna a primeira letra da Frase....."; } }public class TesteFerramentas{ public static void main(String[] args){ String frase = "Sempre é recomendavel utilizar Setter e Getter"; Ferramentas obj = new Ferramentas(); obj.setFrase(frase); System.out.println(obj.toString() + "\n" + frase); System.out.println("Primeira letra da Frase é: " + obj.getLetra()); } }
No caso citado não é necessário utilizar set e get, pois não estamos lidando
com encapsulamento dentro da classe Ferramentas, ou seja
não temos uma variável de instância dentro da classe Ferramentas nem tão pouco
não temos criação ou referência a objetos sendo feito dentro da classe Ferramentas
nem variáveis de nenhum outro tipo.
Pela definição em livros como Java Use a Cabeça ou Java Como Programar
mostram que set e get servem para fazer encapsulamento.
Como não precisaremos manter nenhum valor ou objetos então faz-se desnecessário
o uso de set e get, pois o papel dos métodos é somente receber um valor e devolver
uma resposta.
Bom eu particularmente não posso falar que a solução acima é errada, pelo contrário é válida
mas no entanto fora de convenção e por isso pode correr o risco de fazer assim em alguma empresa
e confundir outros programadores que irão querer sua cabeça rsrs
Recomendo leitura do Java Use a Cabeça
e depois também do Java Como Programar
ambos na parte sobre orientação a objeto, encapsulamento e herança.
Abraço.
public class Ferramentas{ private String frase; public void setFrase(String frase){ this.frase = frase; } public char getLetra(){ return frase.charAt(0); } @Override public String toString(){ return "Método que retorna a primeira letra da Frase....."; } }public class TesteFerramentas{ public static void main(String[] args){ String frase = "Sempre é recomendavel utilizar Setter e Getter"; Ferramentas obj = new Ferramentas(); obj.setFrase(frase); System.out.println(obj.toString() + "\n" + frase); System.out.println("Primeira letra da Frase é: " + obj.getLetra()); } }No caso citado não é necessário utilizar set e get, pois não estamos lidando
com encapsulamento dentro da classe Ferramentas, ou seja
não temos uma variável de instância dentro da classe Ferramentas nem tão pouco
não temos criação ou referência a objetos sendo feito dentro da classe Ferramentas
nem variáveis de nenhum outro tipo.Pela definição em livros como Java Use a Cabeça ou Java Como Programar
mostram que set e get servem para fazer encapsulamento.Como não precisaremos manter nenhum valor ou objetos então faz-se desnecessário
o uso de set e get, pois o papel dos métodos é somente receber um valor e devolver
uma resposta.Bom eu particularmente não posso falar que a solução acima é errada, pelo contrário é válida
mas no entanto fora de convenção e por isso pode correr o risco de fazer assim em alguma empresa
e confundir outros programadores que irão querer sua cabeça rsrsRecomendo leitura do Java Use a Cabeça
e depois também do Java Como Programar
ambos na parte sobre orientação a objeto, encapsulamento e herança.Abraço.
Pela definição em livros como Java Use a Cabeça ou Java Como Programar...rsrs Me desculpe Amigo sou novato e tenho um grande caminho
pela frente.. Só espero nunca pegar uma Classe sua para fazer manutenção... Pois com certeza vou querer saber onde você Mora..rsrsrs... Abraços..
public class Ferramentas{ private String frase; public void setFrase(String frase){ this.frase = frase; } public char getLetra(){ return frase.charAt(0); } @Override public String toString(){ return "Método que retorna a primeira letra da Frase....."; } }public class TesteFerramentas{ public static void main(String[] args){ String frase = "Sempre é recomendavel utilizar Setter e Getter"; Ferramentas obj = new Ferramentas(); obj.setFrase(frase); System.out.println(obj.toString() + "\n" + frase); System.out.println("Primeira letra da Frase é: " + obj.getLetra()); } }No caso citado não é necessário utilizar set e get, pois não estamos lidando
com encapsulamento dentro da classe Ferramentas, ou seja
não temos uma variável de instância dentro da classe Ferramentas nem tão pouco
não temos criação ou referência a objetos sendo feito dentro da classe Ferramentas
nem variáveis de nenhum outro tipo.Pela definição em livros como Java Use a Cabeça ou Java Como Programar
mostram que set e get servem para fazer encapsulamento.Como não precisaremos manter nenhum valor ou objetos então faz-se desnecessário
o uso de set e get, pois o papel dos métodos é somente receber um valor e devolver
uma resposta.Bom eu particularmente não posso falar que a solução acima é errada, pelo contrário é válida
mas no entanto fora de convenção e por isso pode correr o risco de fazer assim em alguma empresa
e confundir outros programadores que irão querer sua cabeça rsrsRecomendo leitura do Java Use a Cabeça
e depois também do Java Como Programar
ambos na parte sobre orientação a objeto, encapsulamento e herança.Abraço.
Eu discordo.
O uso de getters e setters deve ser encorajado em detrimento do acesso direto à variáveis.
Por outro lado, a forma como a classe Ferramenta está construída está muito bem definida, do ponto de vista da OO e das convenções. Ela usa uma variável privada (frase), um método setter (já que ela não possui um construtor que receba o argumento que vai valorar o atributo frase) e um método getter, que retorna a primeira letra.
Do ponto de vista da OO ela está perfeita, pode ser usada em qualquer contexto, é coesa e não deixa brechas para acoplamento.
public class Ferramentas{ private String frase; public void setFrase(String frase){ this.frase = frase; } public char getLetra(){ return frase.charAt(0); } @Override public String toString(){ return "Método que retorna a primeira letra da Frase....."; } }public class TesteFerramentas{ public static void main(String[] args){ String frase = "Sempre é recomendavel utilizar Setter e Getter"; Ferramentas obj = new Ferramentas(); obj.setFrase(frase); System.out.println(obj.toString() + "\n" + frase); System.out.println("Primeira letra da Frase é: " + obj.getLetra()); } }No caso citado não é necessário utilizar set e get, pois não estamos lidando
com encapsulamento dentro da classe Ferramentas, ou seja
não temos uma variável de instância dentro da classe Ferramentas nem tão pouco
não temos criação ou referência a objetos sendo feito dentro da classe Ferramentas
nem variáveis de nenhum outro tipo.Pela definição em livros como Java Use a Cabeça ou Java Como Programar
mostram que set e get servem para fazer encapsulamento.Como não precisaremos manter nenhum valor ou objetos então faz-se desnecessário
o uso de set e get, pois o papel dos métodos é somente receber um valor e devolver
uma resposta.Bom eu particularmente não posso falar que a solução acima é errada, pelo contrário é válida
mas no entanto fora de convenção e por isso pode correr o risco de fazer assim em alguma empresa
e confundir outros programadores que irão querer sua cabeça rsrsRecomendo leitura do Java Use a Cabeça
e depois também do Java Como Programar
ambos na parte sobre orientação a objeto, encapsulamento e herança.Abraço.
Pela definição em livros como Java Use a Cabeça ou Java Como Programar...rsrs Me desculpe Amigo sou novato e tenho um grande caminho
pela frente.. Só espero nunca pegar uma Classe sua para fazer manutenção... Pois com certeza vou querer saber onde você Mora..rsrsrs... Abraços..
Você deveria deixar de ser preguiçoso e ler o tópico todo antes de querer apelar, desculpe a sinceridade mas já segunda vez que vejo isso.
Primeiro eu disse que sua solução não está errada, mas segundo padrões que eu já vi nos livros, e sem contar já vi sendo utilizado em sistema java web de prefeitura de SP
e em Sistema Java de Banco de MG e SP, isso quando trabalhei nas empresas que faziam os sistemas para esses orgãos.
Por outro lado como você ainda nem leu esses dois livros ou algo do tipo e está iniciando agora, não vejo motivo para render mais assunto
pois como você mesmo disse ainda é novato.
Sobe saber onde eu moro ou quaisquer comentários de deboche, eu digo que prefiro mulheres!
Sem mais.
Vou desmarcar o aviso de mensagens novas nesse post para o meu e-mail.
Se o dono do post quiser pode me contatar via mp que ajudo em demais coisas necessárias.
Se o dono do post quiser pode me contatar via mp que ajudo em demais coisas necessárias.
Essa atitude não é a mais adequada.
Quando você responde em outros meios, diferentes do fórum, está negando informação à quem possa ter dúvidas.
Se o dono do post quiser pode me contatar via mp que ajudo em demais coisas necessárias.
Essa atitude não é a mais adequada.
Quando você responde em outros meios, diferentes do fórum, está negando informação à quem possa ter dúvidas.
Concordo com você drsmachado não é uma atitude adequada que o Sr.JavaDreams está tomando… Não quis
debochar dele de modo algum… Mas como ele trabalhou em diversas empresas… né… Enfim…
Estou aqui para aprender e passar algo mesmo que seja o básico… Obrigado drsmachado pelos comentários…
public class Ferramentas{ private String frase; public void setFrase(String frase){ this.frase = frase; } public char getLetra(){ return frase.charAt(0); } @Override public String toString(){ return "Método que retorna a primeira letra da Frase....."; } }public class TesteFerramentas{ public static void main(String[] args){ String frase = "Sempre é recomendavel utilizar Setter e Getter"; Ferramentas obj = new Ferramentas(); obj.setFrase(frase); System.out.println(obj.toString() + "\n" + frase); System.out.println("Primeira letra da Frase é: " + obj.getLetra()); } }No caso citado não é necessário utilizar set e get, pois não estamos lidando
com encapsulamento dentro da classe Ferramentas, ou seja
não temos uma variável de instância dentro da classe Ferramentas nem tão pouco
não temos criação ou referência a objetos sendo feito dentro da classe Ferramentas
nem variáveis de nenhum outro tipo.Pela definição em livros como Java Use a Cabeça ou Java Como Programar
mostram que set e get servem para fazer encapsulamento.Como não precisaremos manter nenhum valor ou objetos então faz-se desnecessário
o uso de set e get, pois o papel dos métodos é somente receber um valor e devolver
uma resposta.Bom eu particularmente não posso falar que a solução acima é errada, pelo contrário é válida
mas no entanto fora de convenção e por isso pode correr o risco de fazer assim em alguma empresa
e confundir outros programadores que irão querer sua cabeça rsrsRecomendo leitura do Java Use a Cabeça
e depois também do Java Como Programar
ambos na parte sobre orientação a objeto, encapsulamento e herança.Abraço.
Eu discordo.
O uso de getters e setters deve ser encorajado em detrimento do acesso direto à variáveis.
Por outro lado, a forma como a classe Ferramenta está construída está muito bem definida, do ponto de vista da OO e das convenções. Ela usa uma variável privada (frase), um método setter (já que ela não possui um construtor que receba o argumento que vai valorar o atributo frase) e um método getter, que retorna a primeira letra.
Do ponto de vista da OO ela está perfeita, pode ser usada em qualquer contexto, é coesa e não deixa brechas para acoplamento.
Eu discordo de você também.
Se pegar o Livro Java Use a Cabeça
ele já começa de cara falando que você não tem que preocupar como o objeto funciona internamente, ou seja:
a) em um equipe de desenvolvimento a pessoa não tem que saber como a sua classe funciona internamente
b) ela tem que saber o método certo a chamar
c) o resto deixar com a classe
Agora sobre convenções?
na minha classe eu instancio um objeto e depois chamo um método para me retornar a resposta que quero
ou seja gasto duas linhas para isso.
na classe do amigo citada
usa uma linha pra criar o objeto
mais uma linha para setar o valor
mais uma linha para chamar o get
ou seja a pessoa que for usar essa classe vai ter que saber chamar um get e outro set
na minha a pessoa só chama 1 método e pronto.
Ao meu ver em um projeto de equipe cada desenvolvedor pode fazer uma classe sua de ferramentas
e depois só dizer para as pessoas o método que elas devem chamar e o tipo que devem passar como argumento.
Hoje trabalho em outra empresa e as coisas funcionam do mesmo modo do que quando antes.
Lembro que só estou rendendo o assunto porque não tem necessidade nenhuma de se usar variáveis
sets e gets nesse caso, por se tratar do fator de que o cara quer é ferramenta para usar.
Volto a dizer, a solução do amigo não está errada, pelo contrário está correta do ponto de vista de OO.
Mas para o contexto, na minha opinião ela não é tão útil igual a minha por se tratar do fator de que o cara
só quer passar um valor para algum método que lhe dê uma resposta. Ou seja ele não vai precisar trabalhar
ou manter esse valor dentro de um objeto ou coisas afins.
Sobre encorajar ou não o uso de get e set
acredito que antes de encorajar seja necessário aprender
onde usar antes de aprender como usar, pois tenho reparado
uma certa fobia nas pessoas pensando que para tudo tem que ter
variável private, set e get...
A propósito quando eu argumentei eu citei fontes como 2 livros.
Dizer que isso ou aquilo é válido usando o dizer "porque é como em OO" ou dizer "porque está dentro da convenção"
para mim é mero capricho ou afeição por terceiros e etc.
Para citar algo tem que ter fonte, nomes e exemplos.
Mas isso vai de cada um e para mim render assunto nesse tema é igual SOPA e PIPA
no final acaba como time de futebol...
Desculpem os argumentos mas acho que tenho todo o direito de discordar
de algo que foi dito sem ter embasamento comprovado.
Vou desmarcar o aviso de novos posts para esse aqui pois acho desnecessário discutir isso
já que foram dadas duas soluções, bastando o autor do post ver qual a que ele vai querer usar.
abraço.
Se o dono do post quiser pode me contatar via mp que ajudo em demais coisas necessárias.
Essa atitude não é a mais adequada.
Quando você responde em outros meios, diferentes do fórum, está negando informação à quem possa ter dúvidas.
Não por esse lado, pois se for assunto que tem que ser tratado em post, eu vou orientá-lo
a abrir um post para tal assunto.
Agora se ele tiver uma coisa específica a tratar comigo, pode usar mp.
Ou seja mensagem pessoal.
Se o dono do post quiser pode me contatar via mp que ajudo em demais coisas necessárias.
Essa atitude não é a mais adequada.
Quando você responde em outros meios, diferentes do fórum, está negando informação à quem possa ter dúvidas.Concordo com você drsmachado não é uma atitude adequada que o Sr.JavaDreams está tomando… Não quis
debochar dele de modo algum… Mas como ele trabalhou em diversas empresas… né… Enfim…
Estou aqui para aprender e passar algo mesmo que seja o básico… Obrigado drsmachado pelos comentários…
O problema é que ironia é sinônimo de deboche para algumas pessoas.
Você tem todo o direito de criticar uma pessoa assim como também deve saber
a receber críticas.
O próprio nome diz… Fórum
ou seja espaço para opinarmos ou não.
Comentários do tipo que você fez em
“…Só espero nunca pegar uma Classe sua para fazer manutenção… Pois com certeza vou querer saber onde você Mora…rsrsrs… Abraços…”
podem ser encarados como falta de respeito por pessoas mais sérias.
no link abaixo:
http://www.guj.com.br/java/139754-regras-do-forum
tem a seguinte regra: "Você aceita não postar qualquer mensagem abusiva, obscena, vulgar, insultuosa, de ódio, ameaçadora, sexualmente tendenciosa ou qualquer outro material que possa violar qualquer lei em vigor. Isto conduz à sua expulsão imediata e permanente. "
Assim o que você disse mesmo que foi por brincadeira, pode ser levado como abusivo, vulgar ou insulto.
Lhe dou total liberdade para questionar ou criticar alguma solução que eu vier a dar, mas comentários
com duplo sentido acho que devem ser guardados para pessoas que façam parte de sua família ou ambiente familiar.
No fórum temos que ter respeito uns pelos outros
e como eu disse no meu post desde o início, sua solução não está errada
pois funciona. Mas não seria a melhor aplicação para esse caso.
Por isso peço por gentileza que guarde essas frases para pessoas em ambiente familiar
pois me senti ofendido quando você usou de ironia.
Abraço e sucesso.
Se o dono do post quiser pode me contatar via mp que ajudo em demais coisas necessárias.
Essa atitude não é a mais adequada.
Quando você responde em outros meios, diferentes do fórum, está negando informação à quem possa ter dúvidas.Concordo com você drsmachado não é uma atitude adequada que o Sr.JavaDreams está tomando… Não quis
debochar dele de modo algum… Mas como ele trabalhou em diversas empresas… né… Enfim…
Estou aqui para aprender e passar algo mesmo que seja o básico… Obrigado drsmachado pelos comentários…O problema é que ironia é sinônimo de deboche para algumas pessoas.
Você tem todo o direito de criticar uma pessoa assim como também deve saber
a receber críticas.O próprio nome diz… Fórum
ou seja espaço para opinarmos ou não.Comentários do tipo que você fez em
“…Só espero nunca pegar uma Classe sua para fazer manutenção… Pois com certeza vou querer saber onde você Mora…rsrsrs… Abraços…”podem ser encarados como falta de respeito por pessoas mais sérias.
Lhe dou total liberdade para questionar ou criticar alguma solução que eu vier a dar, mas comentários
com duplo sentido acho que devem ser guardados para pessoas que façam parte de sua família ou ambiente familiar.No fórum temos que ter respeito uns pelos outros
e como eu disse no meu post desde o início, sua solução não está errada
pois funciona. Mas não seria a melhor aplicação para esse caso.Por isso peço por gentileza que guarde essas frases para pessoas em ambiente familiar
pois me senti ofendido quando você usou de ironia.Abraço e sucesso.
Sr.JavaDreams te peço desculpa… pelo acontecido… você …tem o direito de ter sua opinião e contrariar… É que nem você falou é que nem time
de Futebol…Me desculpe pela a força da palavra…
Sucesso para você…
E…?
Eu sequer uso duas linhas, mas isso não significa que o exemplo colocado está errado. Você foi ofensivo, criticou o que ele fez só por que está diferente do que você faria.
Isso se chama conhecer o mínimo de orientação a objetos. Se você não se recorda, objetos trocam mensagens entre si e estas mensagens são enviadas, recebidas e processadas através dos métodos.
E daí? Não é por que você come McDonald`s que todos devam fazer isso, não acha?
Isso na tua visão e, dentro do que eu conheço e vivenciei, está errado. Essa definição não é feita a partir do que um ou outro desenvolvedor acham mais adequado. Estas classes normalmente são criadas por arquitetos e seguem uma padronização, uma convenção.
Você não pode comparar as tuas experiências pessoais às de ninguém, ou você acha que o mundo gira ao teu redor?
Sim, está usando um discurso longo e desnecessário também. Cada um tem um ponto de vista e você está expondo a tua, mas não significa que a dele esteja incorreta. Você tem o direito de discordar, mas não de atacá-lo como fez.
Sim, se não está errada, simplesmente considere que você tem a tua e as demais pessoas podem ter as delas.
Cara, pense comigo, o método charAt(int posicao) é um método estático e pode ser utilizado por qualquer instância de objeto da classe String, logo, nem a tua resposta é adequada. Agora, só por que as pessoas tem visões diferentes da tua, não significa que seja errado fazer isso.
Novamente eu pergunto, e…?
“O código fica feio, bobo e chato!”. “Martin Fowler disse isso, na página x, do capítulo y, do livro…”. Se eu bem me lembro, você mesmo disse, citando o “maravilhoso” java use a cabeça que
Logo, você mesmo se contradiz neste ponto. Lembrando que o Java, use a cabeça é um dos livros mais indicados para quem está iniciando no desenvolvimento java, logo, não é conhecido por primar pelas convenções e pelas boas práticas de desenvolvimento. Pode até utilizá-las, mas não é este o foco.
Sabe o que eu penso quando alguém tenta argumentar de forma lógica e cita um terceiro? Que esta pessoa não tem capacidade para manter seus argumentos, de provar isso. Você está agindo como um pastor que frente à uma afirmação cientificamente lógica e óbvia, cita a bíblia para se defender. “Vão queimar no inferno”.
Mas isso vai de cada um e para mim render assunto nesse tema é igual SOPA e PIPA
no final acaba como time de futebol…Desculpem os argumentos mas acho que tenho todo o direito de discordar
de algo que foi dito sem ter embasamento comprovado.Vou desmarcar o aviso de novos posts para esse aqui pois acho desnecessário discutir isso
já que foram dadas duas soluções, bastando o autor do post ver qual a que ele vai querer usar.abraço.
O melhor que você pode fazer é isso.
public static void main(String[] args){
String nome = "andrade84";
System.out.println(nome.charAt(0));
}
Sinceramente, eu queria entender de onde é que o JavaDreams tirou que isso está errado.
O problema é que ironia é sinônimo de deboche para algumas pessoas.
Você tem todo o direito de criticar uma pessoa assim como também deve saber
a receber críticas.O próprio nome diz… Fórum
ou seja espaço para opinarmos ou não.Comentários do tipo que você fez em
“…Só espero nunca pegar uma Classe sua para fazer manutenção… Pois com certeza vou querer saber onde você Mora…rsrsrs… Abraços…”podem ser encarados como falta de respeito por pessoas mais sérias.
no link abaixo:
http://www.guj.com.br/java/139754-regras-do-forumtem a seguinte regra: "Você aceita não postar qualquer mensagem abusiva, obscena, vulgar, insultuosa, de ódio, ameaçadora, sexualmente tendenciosa ou qualquer outro material que possa violar qualquer lei em vigor. Isto conduz à sua expulsão imediata e permanente. "
Assim o que você disse mesmo que foi por brincadeira, pode ser levado como abusivo, vulgar ou insulto.
Lhe dou total liberdade para questionar ou criticar alguma solução que eu vier a dar, mas comentários
com duplo sentido acho que devem ser guardados para pessoas que façam parte de sua família ou ambiente familiar.No fórum temos que ter respeito uns pelos outros
e como eu disse no meu post desde o início, sua solução não está errada
pois funciona. Mas não seria a melhor aplicação para esse caso.Por isso peço por gentileza que guarde essas frases para pessoas em ambiente familiar
pois me senti ofendido quando você usou de ironia.Abraço e sucesso.
Hum e isso é o que:
Carinho? Respeito?
Eu discordo de você também.Se pegar o Livro Java Use a Cabeça
ele já começa de cara falando que você não tem que preocupar como o objeto funciona internamente, ou seja:
a) em um equipe de desenvolvimento a pessoa não tem que saber como a sua classe funciona internamente
b) ela tem que saber o método certo a chamar
c) o resto deixar com a classe
E…?Eu sequer uso duas linhas, mas isso não significa que o exemplo colocado está errado. Você foi ofensivo, criticou o que ele fez só por que está diferente do que você faria.
Isso se chama conhecer o mínimo de orientação a objetos. Se você não se recorda, objetos trocam mensagens entre si e estas mensagens são enviadas, recebidas e processadas através dos métodos.
E daí? Não é por que você come McDonald`s que todos devam fazer isso, não acha?
Isso na tua visão e, dentro do que eu conheço e vivenciei, está errado. Essa definição não é feita a partir do que um ou outro desenvolvedor acham mais adequado. Estas classes normalmente são criadas por arquitetos e seguem uma padronização, uma convenção.
Você não pode comparar as tuas experiências pessoais às de ninguém, ou você acha que o mundo gira ao teu redor?
Sim, está usando um discurso longo e desnecessário também. Cada um tem um ponto de vista e você está expondo a tua, mas não significa que a dele esteja incorreta. Você tem o direito de discordar, mas não de atacá-lo como fez.
Sim, se não está errada, simplesmente considere que você tem a tua e as demais pessoas podem ter as delas.
Cara, pense comigo, o método charAt(int posicao) é um método estático e pode ser utilizado por qualquer instância de objeto da classe String, logo, nem a tua resposta é adequada. Agora, só por que as pessoas tem visões diferentes da tua, não significa que seja errado fazer isso.
Novamente eu pergunto, e…?
“O código fica feio, bobo e chato!”. “Martin Fowler disse isso, na página x, do capítulo y, do livro…”. Se eu bem me lembro, você mesmo disse, citando o “maravilhoso” java use a cabeça queLogo, você mesmo se contradiz neste ponto. Lembrando que o Java, use a cabeça é um dos livros mais indicados para quem está iniciando no desenvolvimento java, logo, não é conhecido por primar pelas convenções e pelas boas práticas de desenvolvimento. Pode até utilizá-las, mas não é este o foco.
Sabe o que eu penso quando alguém tenta argumentar de forma lógica e cita um terceiro? Que esta pessoa não tem capacidade para manter seus argumentos, de provar isso. Você está agindo como um pastor que frente à uma afirmação cientificamente lógica e óbvia, cita a bíblia para se defender. “Vão queimar no inferno”.
Mas isso vai de cada um e para mim render assunto nesse tema é igual SOPA e PIPA
no final acaba como time de futebol…Desculpem os argumentos mas acho que tenho todo o direito de discordar
de algo que foi dito sem ter embasamento comprovado.Vou desmarcar o aviso de novos posts para esse aqui pois acho desnecessário discutir isso
já que foram dadas duas soluções, bastando o autor do post ver qual a que ele vai querer usar.abraço.
O melhor que você pode fazer é isso.
Agora entendo o motivo porque você tem mais de 7000 mensagens.
Sempre você fica procurando um meio para afrontar os usuários do fórum.
Você disse que eu pareço pastor de igreja, mas você que está pegando várias partes isoladas da conversa
para tentar ter razão.
Isso sem falar que no final das contas você disse disse e não falou de onde
tirou seus argumentos que citou ser os primórdios da OO e de convenções.
Sem falar que distorceu o que eu disse.
Uma coisa é a pessoa que vai usar o objeto não precisar saber como as coisas
funcionam dentro dele.
Outra coisa é vc ter um método que executa 5 operações e outro que executa 7
pois a princípio parece ser pequena a diferença, mas se pegar uma empresa que
tem 500 mil ou 1 milhão de transações sendo feitas?
Por isso que chamei a atenção para o cuidado de não colocar chamadas ou processos
desnecessários.
Mas uma coisa que me incomoda é a falta de respeito que você tem com um monte de usuários aqui
no fórum e até hoje vc não foi expulso!
O que adianta ter mais de 7000 msgns se você só fica respondendo Post
sem dar solução?
Meio que incoerente isso, não acha?
public static void main(String[] args){ String nome = "andrade84"; System.out.println(nome.charAt(0)); }
Sinceramente, eu queria entender de onde é que o JavaDreams tirou que isso está errado.
Em algum momento eu disse que está errado?
O que eu disse primeiro foi que tem várias maneiras de fazer isso.
Depois eu critiquei uma maneira apresentada, colocando o meu ponto de vista,
coisa que é garantida por regra do fórum, ou seja estou dentro das regras.
Agora se você não concorda então o que você faz aqui no fórum?
Já vi um monte de posts teus onde você só insulta as pessoas…
Com certeza algum adm vai lhe penalizar pelos insultos que andas a fazer por aí.
Eu mesmo já tenho alguns links teus ok?
O problema é que ironia é sinônimo de deboche para algumas pessoas. Você tem todo o direito de criticar uma pessoa assim como também deve saber a receber críticas.O próprio nome diz.. Fórum
ou seja espaço para opinarmos ou não.Comentários do tipo que você fez em
"...Só espero nunca pegar uma Classe sua para fazer manutenção... Pois com certeza vou querer saber onde você Mora..rsrsrs... Abraços.."podem ser encarados como falta de respeito por pessoas mais sérias.
no link abaixo:
[url]http://www.guj.com.br/java/139754-regras-do-forum[/url]tem a seguinte regra: "Você aceita não postar qualquer mensagem abusiva, obscena, vulgar, insultuosa, de ódio, ameaçadora, sexualmente tendenciosa ou qualquer outro material que possa violar qualquer lei em vigor. Isto conduz à sua expulsão imediata e permanente. "
Assim o que você disse mesmo que foi por brincadeira, pode ser levado como abusivo, vulgar ou insulto.
Lhe dou total liberdade para questionar ou criticar alguma solução que eu vier a dar, mas comentários
com duplo sentido acho que devem ser guardados para pessoas que façam parte de sua família ou ambiente familiar.No fórum temos que ter respeito uns pelos outros
e como eu disse no meu post desde o início, sua solução não está errada
pois funciona. Mas não seria a melhor aplicação para esse caso.Por isso peço por gentileza que guarde essas frases para pessoas em ambiente familiar
pois me senti ofendido quando você usou de ironia.Abraço e sucesso.
Hum e isso é o que:
Você deveria deixar de ser preguiçoso e ler o tópico todo antes de querer apelar, desculpe a sinceridade mas já segunda vez que vejo isso.
Carinho? Respeito?
Isso foi em resposta às duas linhas do post abaixo que ele disse na mensagem abaixo usando ironia com ar de deboche:[u]
public class Ferramentas{ private String frase; public void setFrase(String frase){ this.frase = frase; } public char getLetra(){ return frase.charAt(0); } @Override public String toString(){ return "Método que retorna a primeira letra da Frase....."; } }public class TesteFerramentas{ public static void main(String[] args){ String frase = "Sempre é recomendavel utilizar Setter e Getter"; Ferramentas obj = new Ferramentas(); obj.setFrase(frase); System.out.println(obj.toString() + "\n" + frase); System.out.println("Primeira letra da Frase é: " + obj.getLetra()); } }No caso citado não é necessário utilizar set e get, pois não estamos lidando
com encapsulamento dentro da classe Ferramentas, ou seja
não temos uma variável de instância dentro da classe Ferramentas nem tão pouco
não temos criação ou referência a objetos sendo feito dentro da classe Ferramentas
nem variáveis de nenhum outro tipo.Pela definição em livros como Java Use a Cabeça ou Java Como Programar
mostram que set e get servem para fazer encapsulamento.Como não precisaremos manter nenhum valor ou objetos então faz-se desnecessário
o uso de set e get, pois o papel dos métodos é somente receber um valor e devolver
uma resposta.Bom eu particularmente não posso falar que a solução acima é errada, pelo contrário é válida
mas no entanto fora de convenção e por isso pode correr o risco de fazer assim em alguma empresa
e confundir outros programadores que irão querer sua cabeça rsrsRecomendo leitura do Java Use a Cabeça
e depois também do Java Como Programar
ambos na parte sobre orientação a objeto, encapsulamento e herança.Abraço.
Pela definição em livros como Java Use a Cabeça ou Java Como Programar...rsrs Me desculpe Amigo sou novato e tenho um grande caminho
pela frente.. Só espero nunca pegar uma Classe sua para fazer manutenção... Pois com certeza vou querer saber onde você Mora..rsrsrs... Abraços..
Por favor gostaria de algum Adm acompanhar as mensagens que o user drsmachado está escrevendo.
Entendo que uma vez ou outra cometermos erros e não ter paciência em ajudar as pessoas, seja normal
pois somos seres humanos.
Mas o que o usuário drsmachado está fazendo com vários outros usuários é muita falta de respeito.
Pois ele está entrando nas discussões somente com o intuito de gerar confusão.
É raro ver esse usuário ajudando de fato, e agora a pouco foi ao cúmulo de dizer no post abaixo que o
novato autor do post não poderia aprender aqui no fórum, que ele devia antes era fazer um curso
java, dentre outros insultos que deixo o post falar por si próprio.
Link do post
[url]http://www.guj.com.br/java/303871-desvantagens-em-usar-return-vazio-em-metodo-void[/url]
post
Sinceramente, por que você não faz um curso de java? Cara, você tem uns trocentos tópicos abertos, a maioria seria facilmente respondida com um pouco mais de estudo. Há uma convenção não oficial que diz que você deve ter apenas um return em cada método. Se ele é void, deve-se evitar o mesmo. Por que? Quando você usa istoPoderia fazerif(!condicao1){ return; } if(!condicao2){ return; } if(!condicao3){ return; }E, se nenhuma condição for atendida, simplesmente sai do processo. "Ah. mas e quanto a mensagem de erro?" Com o que você apresentou antes, também não havia tratamento. Outro ponto, uso excessivo de if`s torna teu código muito estruturado e, sendo assim, o ideal seria não fazê-lo como void, mas como int, dependendo do que ocorrer, retorna 0 (execução normal) ou um valor negativo (indicando erro).if(condicao1){ //Faz algo relacionado a condicao1 } if(condicao2){ //Faz algo relacionado a condicao2 } if(condicao3){ //Faz algo relacionado a condicao3 }
Por favor peço que algum moderador ou administrador acompanhe os posts desse usuário pois pude constatar
outros usuários se sentindo ofendidos com algumas respostas que o mesmo está colocando.
Eu sei que não sou perfeito e que também estou passível de cometer erros,
mas acredito que o user drsmachado já passou dos limites, não merecendo
fazer parte dessa ótima comunidade, pelo fato de ter milhares de mensagens
mas em muitas não ter paciência.
Bom essa é minha opinião e meu pedido, mas não sou dono do fórum, sendo assim
não posso obrigar ninguém a nada, mas me sinto no dever de denunciar abusos de certos membros.
Quando se fala em convenções, precisa mesmo citar fonte?
Acredito que todo programador que diz saber programar Java deve conhecer as fontes.
Pesquisando “java conventions” no Google o primeiro link é esse: http://www.oracle.com/technetwork/java/codeconv-138413.html
Diretamente da fonte, sem lero lero…
Quando se fala em convenções, precisa mesmo citar fonte?Acredito que todo programador que diz saber programar Java deve conhecer as fontes.
Pesquisando “java conventions” no Google o primeiro link é esse: http://www.oracle.com/technetwork/java/codeconv-138413.html
Diretamente da fonte, sem lero lero…
Entendo seu ponto de vista e até apoio o fato de não ficar com muito lero lero…
Mas amigo o problema é que a gente está vendo por aí um monte de pessoas
que mesmo que não estejam mal intencionadas, estão dizendo qualquer tipo de coisa
e no final para tentar ter crédito chega e cita “segundo a convenção”.
Eu também tenho conhecimento da base de dados mas tomo muito cuidado
quando uma pessoa dá uma resposta e simplesmente cita que é de convenção.
Por outro lado tento citar livros que mesmo sendo de nível iniciante, tem umas boas afirmações.
Abraço.
Quando se fala em convenções, precisa mesmo citar fonte?Acredito que todo programador que diz saber programar Java deve conhecer as fontes.
Pesquisando “java conventions” no Google o primeiro link é esse: http://www.oracle.com/technetwork/java/codeconv-138413.html
Diretamente da fonte, sem lero lero…
Entendo seu ponto de vista e até apoio o fato de não ficar com muito lero lero…
Mas amigo o problema é que a gente está vendo por aí um monte de pessoas
que mesmo que não estejam mal intencionadas, estão dizendo qualquer tipo de coisa
e no final para tentar ter crédito chega e cita “segundo a convenção”.Eu também tenho conhecimento da base de dados mas tomo muito cuidado
quando uma pessoa dá uma resposta e simplesmente cita que é de convenção.Por outro lado tento citar livros que mesmo sendo de nível iniciante, tem umas boas afirmações.
Abraço.
Qual a diferença entre citar convenções ou citar livros?
Independente de qual for a citação, o interessado vai ter que consultar a convenção Java ou o tal livro pra comprovar…
Enfim, desculpe a intromissão no assunto. Vou parar por aqui, já desvirtuou total do assunto central do tópico.
oi pessoal
vamos evitar o flame e nos ater a discussao tecnica
valeu
Quando se fala em convenções, precisa mesmo citar fonte?Acredito que todo programador que diz saber programar Java deve conhecer as fontes.
Pesquisando “java conventions” no Google o primeiro link é esse: http://www.oracle.com/technetwork/java/codeconv-138413.html
Diretamente da fonte, sem lero lero…
Entendo seu ponto de vista e até apoio o fato de não ficar com muito lero lero…
Mas amigo o problema é que a gente está vendo por aí um monte de pessoas
que mesmo que não estejam mal intencionadas, estão dizendo qualquer tipo de coisa
e no final para tentar ter crédito chega e cita “segundo a convenção”.Eu também tenho conhecimento da base de dados mas tomo muito cuidado
quando uma pessoa dá uma resposta e simplesmente cita que é de convenção.Por outro lado tento citar livros que mesmo sendo de nível iniciante, tem umas boas afirmações.
Abraço.
Qual a diferença entre citar convenções ou citar livros?
Independente de qual for a citação, o interessado vai ter que consultar a convenção Java ou o tal livro pra comprovar…
Enfim, desculpe a intromissão no assunto. Vou parar por aqui, já desvirtuou total do assunto central do tópico.
Não é uma questão de diferença.
Livro é mais fácil comprovar se é verdade ou não, pois a maioria das pessoas os lê.
Convenção é mais completo pelo fator de existirem mudanças ao decorrer do tempo.
Mas não dá para saber uma receito de bolo, o ideal é ficar atento para as respostas que vemos por aí.
Mas acho sua opinião importante também pois mesmo que não está direcionada direto no post
ela tem relacionamento com o assunto também.
abraço
E pensar que todo problema se deu por que alguém considerou a invocação do método charAt(int posicao) da classe String, uma maneira inadequada de resolver o que o autor do tópico queria.
Eu me pergunto, quais convenções, quais livros e quais autores seriam tão xiitas a ponto de ignorar a existência do método charAt e exigir que fosse criada uma classe que tivesse, entre outros, um método que retorne a primeira letra de uma String…
Sinceramente, eu nunca vi (são 4 anos de java, mais alguns de C e outros de PHP) ninguém, em nenhum projeto, ignorar o charAt, toUpperCase, toLowerCase, equals, equalsIgnoreCase ou outro método mais sensato e direto, em prol de um método que faz a mesma coisa, mas que está colocado de forma mais organizada.
Mas, de repente, essa minha experiência tenha sido inútil. Talvez alguém tenha que perder tempo (re) criando a roda. Afinal, por que usar o que a linguagem já disponibiliza, não?
Aliás, por que tornar mais fácil o processo, pois é muito mais intuitivo lembrar (e, também, pesquisar) como funciona um método da classe String, do que recordar alguma classe de algum projeto que faça o que eu preciso.
“Se todos pensassem assim, não teríamos frameworks”. Sim, é uma análise válida. Mas, todo framework está baseado em algo que existe e que poderia (talvez tenha sido) ser melhorado. ORM? IoC? DI? MVC? Web? Todos eles seguem proveem uma série de melhorias ao que existia. Não, não é o caso.
Bom senso? Para quê, não?