January 28, 2003
Hej!
Ska göra ett litet program som byter ut de bokstäver som skrivs in, till nästa --> a blir b , c blir d och så vidare.
Här är min kod:
import java.*;
import javax.swing.*;
class sub_en_kod
{
public static void main (String [] a)
{
String s=JOptionPane.showInputDialog("Skriv in text för kodning");
String plaintext=input(s);
System.out.println(plaintext);
}
public static String input(String str)
{
String s="";
char c=' ';
int a;
char o;
for(int i=1;i<=str.length();i++)
{
c=str.charAt(i-1);
a = (int) c;
a+=i;
o = (char) a;
System.out.print(o);
}
return s;
}
}
Nu är det så att jag endast kan skriva in 10 tecken sen får jag en massa feltecken.
Någon som kan hjälpa mig?
tack
December 30, 2000
import javax.swing.*;
public class StringTransformer {
public static void main(String[] args) {
String str = JOptionPane.showInputDialog("Skriv in text för kodning");
StringBuffer buffer = new StringBuffer();
for(int i = 0; i < str.length(); i++) {
buffer.append((char) (((int) str.charAt(i)) + 1));
}
System.out.println(buffer.toString());
}
}
lär funka..
däremot så har du inte definierat vad som ska hända med 'z'? ska det bli ett 'a' eller ett 'A' eller ngt annat? 🙂
vad som ska hända med tecken som inte är bokstäver.. om ngn skriver in mellanslag till exempel...?
December 30, 2000
marsan wrote: tack!
Så anledningen till att det inte tog mer tecken än 10 var att jag inte använde mig av StringBuffer?
glömde svara på det där...
for (int i = 1; i <= str.length(); i++) {
c = str.charAt(i-1);
a = (int) c;
a += i;
o = (char) a;
}
där har du felet... det har inget med 10 att göra...
a += i; (dvs a = a + i;) betyder att du ökar dina chars med räknaren från for-loopen.. först ökar du med 1.. sen med 2.. osv osv..
1 Guest(s)