14. januar 2003 - 11:43Der er
13 kommentarer og 2 løsninger
char array to string uden fejl?
ok jeg har et char array: char []test = {'s','p','a','s','s','e','r'}; System.out.println("test:" + test.toString()); for det meste giver det et korekt resultat, men for spasser giver det strengen: [C@2acc65
Hvorfor, og hvad kan jeg gøre for at få den rigtige streng?? det samme gør sig gældene for char []test = {'k','e','n','n','e','t','h'}; nogen ideer???
mercur8: det har jeg prøvet det giver det samme resultat... det underlige er at det virker i langt de feleste tilfælde, men der er lige et par untagelser... som "spasser" og "kenneth", Det underlige er at jeg ikke får nogle fejl bare et forkert resultat...
Det skal virke at lave new String(char[]). Den udskrift du får der ser "mærkelig" ud indeholder information om at der er en array af char og så er der en hexadecimal hashcode for objektet.
ok her er et kun lidt modificeret eksempel fra sun, kort og godt er det bare en test, jeg lige lavede for at teste hvordan jeg fik et password fra et JPasswordField... import javax.swing.*; import java.awt.*; import java.awt.event.*;
public class PasswordDemo { static JTextField output = null;
public static void main(String[] argv) { final JFrame f = new JFrame("PasswordDemo"); output = new JTextField(""); output.setPreferredSize(new Dimension(120,20)); JLabel label = new JLabel("Enter the password: "); JPasswordField passwordField = new JPasswordField(10); passwordField.setEchoChar('#'); passwordField.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JPasswordField input = (JPasswordField)e.getSource(); String ds = new String(input.getPassword()); output.setText(ds); char[] password = input.getPassword(); if (isPasswordCorrect(password)) { JOptionPane.showMessageDialog(f, "Success! You typed the right password."); } else { JOptionPane.showMessageDialog(f, "Invalid password. Try again.", "Error Message", JOptionPane.ERROR_MESSAGE); } } });
Så det har intet med konvertering char[] -> String at gøre.
Det er et Swing setText problem.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.