Żeby nie robić zbędnego bałaganu, napisze tu.
import java.util.Scanner;
public class Zad3b {
public static void main(String[] args) {
// TODO Auto-generated method stub
/* częśćB */
Scanner skaner = new Scanner(System.in);
String klucz;
String zaszyfrowanaWiadomosc;
System.out.println("Podaj zaszyfrowaną informację. ");
zaszyfrowanaWiadomosc = skaner.nextLine();
System.out.println("Podaj klucz (a, b)");
klucz = skaner.nextLine();
skaner.close();
String przecinek = ",";
String przechowajA = "";
String przechowajB = "";
int a=0;
int b=0;
for(int i=0; i<klucz.length(); i++){
if(klucz.charAt(i) == przecinek.charAt(0)){
przechowajA = klucz.substring(0, i);
przechowajB = klucz.substring(i+1, klucz.length());
}
}
System.out.println("Wartości Stringowe zmiennych: " + przechowajA + ' ' + przechowajB);
int pomoc = 1;
for (int i = 0; i < przechowajA.length(); i++) {
a+=Character.getNumericValue(przechowajA.charAt(przechowajA.length()-1-i))*pomoc;
System.out.println("Wyznaczanie a w pętli:" + a);
pomoc*=10;
}
pomoc=1;
for (int i = 0; i < przechowajB.length(); i++) {
b+=Character.getNumericValue(przechowajB.charAt(przechowajB.length()-1-i))*pomoc;
System.out.println("Wyznaczanie b w pętli: " + b);
pomoc*=10;
}
System.out.println("Wartości intowe zmiennych: " + a + " " + b);
}
}
Wiem, że to dość dziwny kod to przekształcenia String w int, ale dziwi mnie jedna rzecz. Po odpaleniu tego w konsoli:
Podaj zaszyfrowaną informację.
coś
Podaj klucz (a, b)
123, 987
Wartości Stringowe zmiennych: 123 987
Wyznaczanie a w pętli:3
Wyznaczanie a w pętli:23
Wyznaczanie a w pętli:123
Wyznaczanie b w pętli: 7
Wyznaczanie b w pętli: 87
Wyznaczanie b w pętli: 987
Wyznaczanie b w pętli: -13
Wartości intowe zmiennych: 123 -13
Dlaczego wartość B wyświetlana w pętli (jako już intowa), poza pętlą jest 1000 mniejsza?