JSP equals methodu kullanimi?

Başlatan lsari86, 13 Mayıs 2012 - 23:53:59

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

lsari86

herkese merhabalar,
konuyu JAVA başlığı altına acmam nekadar dogru oldu bilemiyorum ancak JSP nin JAVA tabanali oldugunu dusunerek sorumu buraya sormayi uygun buldum. JSP ve programlamada yeni biri olarak kendime JSP ile basit bir hesap makinesi yapmak istedim.
internetten yaptigim arastirmalar neticesinde asagidaki gibi bir ornek ortaya cikardim.
ancak anladigim kadari ile JSP de equals() methodu ile text_box lardan aldigim string leri integer a cevirmem gerekiyor.
bu konuda bana yardimci olabilirseniz cok mutlu olurum.
keza if dongusunde tikanip kaldim.
ornek kod um asagidadir.
kolayliklar...



<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Hesap Makinesi</title>
</head>
<body>

<%--kullanicidan verileri alacagimiz form u olusturuyoruz --%>
<form name="hesap_makinesi" method="post" action="hesap_makinesi.jsp">
<%--burada veri_giris formundan aldigimiz verileri form.jsp  sayfasinin icinde baska bir yere gonderiyoruz.
boylece ayni form.jsp sayfasinda islemlerimizin sonuclarini gorebilecegiz--%>

<%--burada veri girisi yaptiracagimiz formumuzun duzgun bir sekilde durabilmesi icin bir tablo icine aliyoruz --%>
<table>
<tr>
<td>BIRINCI SAYI</td>
<td><input type="text" name="sayi1"></td>
</tr>

<tr>
<td>IKINCI SAYI</td>
<td><input type="text" name="sayi2"></td>
</tr>

<%--yukarýda aldýgýmýz sayýlarla yapacagýmýz iþlem adýmlarýný seciyoruz --%>
<tr>
<td>
<select name="islem" id="islem">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
</td>
</tr>

<tr>
<td><input type="submit" name="hesapla" id="hesapla" value="HESAPLA" /></td>
</tr>
</table>
</form>

<%-- yukarida aldigim sayilari ile yaptigim islem sonucunu burada gosteriyorum--%>

<table width="200" border="3" bordercolor="orange">
<tr>
<td>

<% int xsayi1 = Integer.parseInt( request.getParameter("sayi1"));%>
<% int xsayi2 = Integer.parseInt( request.getParameter("sayi2"));%>
<% String islem = request.getParameter("islem");%>

<%
if(islem = "+")
    equals(" TOPLAMA : = " + (xsayi1 + xsayi2));
else if(islem = "-")
    out.println(" CIKARMA : = " + (xsayi1 - xsayi2));
else if(islem = "*")
    out.println(" CARPMA : = " + (xsayi1 * xsayi2));
else if(islem = "/")
    out.println(" BOLME : = " + (xsayi1 / xsayi2));
%>

</td>
</tr>
</table>
</body>
</html>


ct

#1
Merhaba,

Stringleri direkt karşılaştırma sorun çıkarabiliyor çünkü bu karşılaştırma işleminde oluşturulan nesneleri karşılaştırıyor. String sizin de bildiğiniz gibi int gibi ilkel veri tipi değil referans tipidir. Onun yerine şunu kullanabilirsiniz:

if (islem.equalsIgnoreCase("+"))

Gerçi burada buna gerek yok sanırım. Direkt == kullanmanız yetiyor. Soruyu doğru mu anlamışım acaba?

WhiteScars

Programlama tecrübelerime dayanarak sana şöyle bir öneride bulunabilirim.


<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>


kısmını


<option value="0">+</option>
<option value="1">-</option>
<option value="2">*</option>
<option value="3">/</option>


olarak değiştirip, if else yerine bunu switch case olarak yapmanı tavsiye ederim.

Öte yandan koddaki


if(islem = "+")
    equals(" TOPLAMA : = " + (xsayi1 + xsayi2));
else if(islem = "-")
    out.println(" CIKARMA : = " + (xsayi1 - xsayi2));
else if(islem = "*")
    out.println(" CARPMA : = " + (xsayi1 * xsayi2));
else if(islem = "/")
    out.println(" BOLME : = " + (xsayi1 / xsayi2));


kısmı yanlış.

Java'da stringleri karşılaştırırken 2 method kullanır. Bunlardan 1. si equals diğer is equalsIgnoreCase'dir. İsimlerinden anlaşılacağı gibi ilki büyük küçük harf duyarsız karşılaştırma yapıyor, 2 si ise büyük küçük harfleri dikkate alıyor.
İnsanoğluna bırakabileceğiniz en güzel miras tecrübelerinizdir.