Estou desenvolvendo um programa em Java que le uma linha de um arquivo . So que eu preciso declarar dois indices, um indice i que percorre a string ate encontrar um abre chaves ({) e um indice j que eh igualado ao indice i quando encontra o abre chaves. Como eu faco isso , por favor me ajudem!!!
Brigadao desde jah…
[color=“darkblue”]Olá!
use essa função charAt().
Sintaxe:[/color]
int i, j;
i = suaLinhaString.charAt("{");
j = suaStringLinha.charAt("}");
[color=“darkblue”]Era isso que vc queria??
[]'s[/color]
[quote=“riqueneil”][color=“darkblue”]Olá!
use essa função charAt().
Sintaxe:[/color]
int i, j;
i = suaLinhaString.charAt("{");
j = suaStringLinha.charAt("}");
[color=“darkblue”]Era isso que vc queria??
[]'s[/color][/quote]
Seja bem vinda ao Portal!!! :viva:
Só por curiosidade, este problema tem a ver com Compiladores? Ou algo do tipo?
bem…ta ae :lol:
static int i, j;
public static void main(String arg[])
{
String palavra = arg[0];
for (int count = 0; count < palavra.length(); count++)
{
if (palavra.charAt( count ) == '{')
{
j = count;
System.out.println("O caracter { este na casa nº " + (j +1) );
}
}
}
repara que na hora de imprimir a casa do { se adicoina 1 a varivel j, pois numa String as casas começam a ser contadas do 0 :!:
putz…parece que achei a coslução mais complicada
q q não faz o conhecimento… :!:
Tipo, eu tenho que fazer algo mais ou menos assim:
ler uma linha de um arquuivo ate encontrar um abre
chaves, dai qnd achar eu igualo o indice i(q andou)
com o j, pra dizer q achou o tal do ‘{’. Tem que fazer
um while ate encontrar um abre chaves, oh mais u menos asssim:
enquanto(j<linha.length e linha.charAt(j)!=’{’ e ‘}’)
{
j++;
}
if j = fim da string entao
devolva linha.
Se alguem puder ajudar a passar isso pra java, eu vou
agradecer mt pq preciso entregar hj esse programa e num
to conseguindo. Nem sei se to na parte certa do forum ,
desculpa se tiver errado, mas to mo desesperada. Brigadao
de novo e ate mais!
[color=“darkblue”]Fala aê Merlin!!!
Cara eu não queria comentar, mas achei a sua opão um tanto qnt redundante… vc usou uma string como vetor em um laço de for() e ainda contou com um charAt()…
Assim, eu tenho um professor q é do HIME, se o cara vê um troço desses ele infarta!!! hahahahahahah…
Mas como vc é um cara safo, reparou rápido!!! :lol:
Ah!!!Eu cometi um erro terrível!!!
int i, j;
i = suaLinhaString.indexOf("{");
j = suaStringLinha.indexOf("}");
reparem q eu usei charAt() ao invés de indexOf!!! 8O
Desconsiderem o meu primeiro exemplo!!!
[]'s[/color]
[color=“darkblue”]Putz cara, vou ser chato…
Oq vc quer é oq?? É oq perguntaram na outra resposta?? Um compilador??
Se for vc corre o risco de ter um “{” em uma linha e o “}” em outra linha, então vc vai ter que trabalhar com muita concatenação e verificação de indexOf para achar os limites… esponha melhor PorFavor oq vc quer para que possamos lhe orientar melhor, assim… coloque um passo-a-passo…
Valeu??
[]'s[/color]
Vou tentar me expressar melhor: o que eu quero fazer e o seguinte:
bom, eu vou trabalhar com um compilador que vai pegar o codigo
fonte de um usuario e “arruma-lo” para ser compilado. So que o
compilador soh trabalha com uma especie de programa padronizado,
ou seja, nao pode haver dois fecha chaves na mesma linha.
Ex: public class Lilika {
public static void main string args
{
System.out.println(“Help”);
}}
No padrao teria que ficar assim:
Ex: public class Lilika
{
public static void main string args
{
System.out.println(“Help”);
}
}
Naum sei, agora da pra entender o que eu preciso fazer…
Inte
Se vcs tiverem uma ideia pra comecar e puderem me ajudar, eu agradeceria mt, pq o que tah faltando pra mim eh uma ideia inicial, o resto acho q depois eu consigo fazer
[color=“darkblue”]Putz!!!
Vc tá num mato sem cachorro cara!!! hahahahahaha
Oq vai acontecer é o seguinte… a sua aplicação vai armazenar o “{” e os “}” em vetores de inteiros e a ultima posição do vetor i vai se referenciar com a primeira do vetor j, ou seja, i[ultima](a que abre) j[primeira] (a que fecha), não sei se fui bem claro, mas vc vai correr linha a linha e qnd encontrar esses caracteres vc vai armazenar nesses vetores de inteiros, vou tentar dar um exemplo doq vai acontecer![/color]
[code]public class Lilika {
public static void main string args
{
System.out.println("Help");
}}
No padrao teria que ficar assim:
Ex: public class Lilika
{
public static void main string args
{
System.out.println("Help");
}
}[/code]
[color=“darkblue”]nesse seu exmplo aconteceria o seguinte:
encontrou a primeira “{” ele armazena i[0] = string.indexOf("{");
encontrou novamente “{” ele armazena i[1] = string.indexOf("{");
encontrou “}” armazena j[0] = string.indexOf("}");
encontrou novamente “}” armazena j[1] = string.indexOf("}");
Se vc for reparar o i[0] está abrindo para fechar com o j[1] e o i[1] está abrindo para fechar com o j[0]…
Se vc não entendeu eu posso te fazer um exemplo e mandar depois, tá??
[]'s e boa sorte[/color]
ATo comecando a entender, valeu. Se vc puder me mandar um exemplo depois eu agradeceria muitao…Mas to tentando ir fazendo isso aqui por enquanto. Eheu sei q eu toh num mato sem cachorro hehehehe. Brigado mais uma vez, inte.
Cara, eu vou tentar fazer um exemplo, mas não te garanto que faça tá??
É q eu estou muito ocupado e isso me tomaria um tempo em excesso, mas se vc tiver alguma dúvida, poste aqui que agente ajuda valeu?!?!
[]'s
Tah bom, soh c vc tiver tempo, mesmo assim valeu pra caramba por enquanto, jah comeceii um pedaco dele e acho q vou poder entragar ate semana q vem ufa!!! Bom, parece que agora vem a parte mais dificil e eu acho q vou incomoda-los de novo amanha. Espero um dia ser tao boa de programacao assim como vcs sao, e mt boa essa iniciativa de ajudar quem tah comecando. Beijos e ate amnha q agora eu vou pra casa, jah gastei bastante neuronios por hj heheheh
[color=“darkblue”]hahahahahahahaha!!!
De nada… Agente tá aqui pra isso mesmo…
Mas de ante mão já te dou uma dica, experiência de quem já mexeu com compiladores…
Vc vai depender muito de algumas funções chamadas substring(), replace() e indexOf()…
Com uma visão dessa vc mata isso em pelo menos 3 métodos!
O lance é: aplicar em apenas um lugar onde sirvão para todas as condições…
Nunca fiz compilador em Java, até que seria algo lega para tentar se fazer…
[]'s e boa sorte![/color]