2016-01-05 5 views
0

Кажется, просто напечатать значение переменной в java, но я не могу сделать это правильно. У меня есть таблица Mysql, которая содержит имена «fname» & фамилии «lname». после подключения к моему sql я извлекаю эти значения и сохраняю их в переменных. то проблема начинается ... вот screenshot и вот мой кодНевозможно напечатать значение переменной

package signup; 

import java.sql.*; 
import java.util.Random; 
import org.openqa.selenium.Keys; 

public class Signup { 
private static final String db_connect = "jdbc:mysql://localhost/test1" ; 
private static final String uname = "username" ; 
private static final String pass = "password" ; 

private Connection conMethod(){ 
Connection conVar = null; 
try{Class.forName("com.mysql.jdbc.Driver");conVar = DriverManager.getConnection(db_connect,uname,pass);}catch(SQLException e){e.printStackTrace(); 
}catch(ClassNotFoundException e){e.printStackTrace();}return conVar;} 

public void selectMethod(){Statement query = null; 
ResultSet rs1 = null; 
Connection conVar2= conMethod();try{query = conVar2.createStatement(); 

rs1 = query.executeQuery("Select * from fnames2"); 
String[] fname=new String[500]; String[] lname=new String[500]; 
int a=0;while(rs1.next()){fname[a]=rs1.getString(2); lname[a]=rs1.getString(3); a++;} 

String firstname = fname[1]; 
String lastname = lname[1]; 
String fullname = firstname+" "+lastname; 
String email = firstname+lastname+"@yahoo.com"; 


System.out.println("first name is "+firstname); 
System.out.println("last name is "+lastname); 
System.out.println("full name is "+fullname); 
System.out.println("email is "+email); 


} catch(SQLException e){e.printStackTrace();} 

} 

public static void main (String args[]){Signup obj = new Signup();obj.selectMethod();} 
} 

и вот его из положить

first name is PATRICIA 
last name is ALISHA 
full name is PATRICIA ALISHA 
@yahoo.comATRICIAALISHA 

вы можете увидеть проблему в переменной электронной почты. он должен печатать [email protected], но он печатает что-то «@ yahoo.comATRICIAALISHA». Спасибо

+0

он должен печатать «электронная почта [email protected]», но вывод - это что-то «@ yahoo.comATRICIAALISHA», я пробовал 1 день, но не мог узнать, где проблема. как вы можете видеть, имя firstname и lastname изменяются правильно, то почему электронная почта не печатается правильно? – carol

+0

Похоже, вы еще не опубликовали обновленный код. Но нужно очистить проект, а затем попробовать. –

+1

В конце 'lastname', вероятно, есть символ' '\ r''. Попробуйте вывести 'lastname.length()' и посмотреть, не 7 ли это. 6. – ajb

ответ

2

Выход соответствует lastname, являющемуся "ALISHA\r". Случается, что при печати (в зависимости от вашей ОС) символ \r заставляет курсор вернуться к началу строки. Это не влияет на внешний вид вывода в тех случаях, когда вы печатаете "last name is" или "full name is", так как курсор будет просто перейти на следующую строку. Но это вызывает email быть "PATRICIAALISHA\[email protected]", что означает, что после того, как он выводит email is PATRICIAALISHA, курсор возвращается в начало строки и переписывает то, что там уже с @yahoo.com, что вполне достаточно, чтобы переписать текст вверх через P.

+0

Спасибо большое, вы действительно Genius. = D – carol

+0

Нет, просто делал это достаточно долго, чтобы много раз сталкиваться с такими проблемами. – ajb

Смежные вопросы