İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Sinema Dizi Akıllı Ev Motosiklet Mikromobilite Kripto Para Sağlık Teknolojileri Son dakika Yazarlar
  1. Ana sayfa
  2. SDN Forum
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

C# stringlerle ilgili sorunum var?

Konu bilgisi

9cevap
4.535görüntüleme
16.04.2009açıldı
17.04.2009son cevap

#1
arkadaşlar bi kelimenin belli bi hafrini değiştirmek istiyorum ama beceremiyorum

string kelime;
kelime = textbox1.text;
kelime[2] = 'a' ;

gibi birşey yapmak istiyorum kelime diyerek istediğimiz harfine ulaşma imkanımız yok mu ?
Cevaplar
#2
replace 'i denedin mi?

kelime.Replace("aradığın değer", "yeni değer").ToString());


c# pek yazmadım ama mantıken böyle olabilir mesela...

düzeltme:
(evet kelime diye bişey olmaz doğru :) özür diliyorum dalgınlığıma geldi :sweatdrop:) ama yukarıdaki kod mantığında olması lazım...
#3
String'e dizi (array) özelliği kazandırmaya çalışmışsın. kelime[2] ifadesi demek, kelime isimli dizinin üçüncü elemanını getir demektir. Stringlerin karakterlerine numara vererek onlara ulaşamazsın. Onun yerine substring kullanman gerekir.

Örneğin beşinci karaktere (harfe) ulaşmak istiyorsun:
string besinci = kelime.Substring(4, 1);

Şimdi "besinci" isminde bir değişken var ve bu değişken "kelime" değişkenindeki 5nci harfi içeriyor. Parantez içindeki 4, kaçıncı harften itibaren almak istediğini ifade eder (ki sayfamaya sıfırdan başlandığı için 4 sıra numarası, 5nci karaktere denk gelir), ondan sonraki 1 sayısı ise, kaç harf okumak istediğini belirtir.

Örneklendirecek olursak:

string kelime = 'Elmacik';
Console.Write(kelime.Substring(4, 1));


Bu kod ekrana beşinci karakteri yani "c" harfini yazdırır. Şöyle deneyelim:

string kelime = 'Elmacik';
Console.Write(kelime.Substring(3, 2));


Bu kod, dördüncü karakterden başlayarak ekrana iki harf yazdırır. Yani "ac".
Köşeli parantez kullanmak, dizilerin özelliğidir. Dizilerin o sıradaki elemanına ulaşmak için kullanılır.

Bu arada ben C# dilini bilmiyorum, genel programlama mantığından yola çıkarak bu cevabı verdim.

İyi çalışmalar.
#4
şu kod işini görecektir.

string kelime;
kelime = textBox1.Text;
MessageBox.Show(kelime.Substring(5, 1));

kodu açıklayacak olursak. ilk önce kelime diye bir string oluşturuyoruz. ardından textbox1'in yazısını buna atıyoruz daha sonra bir mesaj kutusu göster diyoruz ver içeriğine de kelime stringindeki 5 numaralı indexde bulunan harfi verdiriyoruz.

kelime.Substring(5, 1) kodu 5 numaralı indexden itibaren 1 karakter döndür demektir.

index numaraları 0 dan başladığı için şöyle bir açıklama yapabiliriz:

kelime stringine mehmet kelimesini atadığımızı var sayarsak.

0|1|2|3|4|5
-------------
m|e|h|m|e|t

kelime.Substring(5, 1) kodu mehmet kelimesinde en sondaki t harfini döndürecektir.

iyi günler dilerim...
__kadıköyRAP__ Konuyu açan
#5
bu substring i unutmuşum ben çok sağolun :)
ama
karisik.Substring(k, 1) = harf;
dediğim zaman The left-hand side of an assignment must be a variable, property or indexer diyor yani atama yaptırmıyor bunu nasıl halledebiliriz?

yani substring ile değer alınıyor ama değiştirilemiyor
#6
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Karakter
{
class Program
{
static void Main(string[] args)
{
new Kelimeler("SERKAN", 'X', 3); // SERKAN KELİME , X Yeni Harf , 3 ise nereye yerleşeceği


}

public class Kelimeler
{
public Kelimeler(string kelimem,char yeniharf,int yer)
{
Console.WriteLine("Eski Hali:" + kelimem);
StringBuilder K = new StringBuilder(kelimem);
K[yer] = yeniharf;
Console.WriteLine("Yeni Hali:" + K);
}

}


}
}
#7
hocam merak ettiğim için soruyorum; replace olmuyormu? yoksa senmi başka bişey arıyorsun?şuan deneyemiyorum ondan sordum.
#8
tam olarak ne yapmak istediğini anlatırsan biz de sana ona göre kod göndeririz.
isteğini bilemediğim için nasıl bir kod göndereceğim konusunda tereddütteyim...
__kadıköyRAP__ Konuyu açan
#9
@stressiz kullanımını anlayamadım yazdığının
@bulmeh replacersiz başka bi algoritma ile yaptım yapmak istediğimi ama replace ile uğraştım şu şekilde oluyor

string kelime="ShiftDelete";
kelime=kelime.Replace(Convert.ToChar(kelime.Substring(0, 1)),'D'); //kelime="DhiftDelete" oldu


@cgrszone
yapmak istediğim kelimelerden oluşan bir diziden kelime seçeceğim kelimenin harfleri karılmış olarak gelecek kelimenin ne olduğunu bilirsem BRAVO diyecek ve öteki kelimeye geçecek bulamazsam direk öteki kelimeye geçecek ve gelen kelime bir daha gelmeyecek..
Bu biraz uzun gelir diye takıldığım yeri sormuştum o yüzden sadece

Teşekkürler arkadaşlar :)
__kadıköyRAP__ Konuyu açan
#10
ödevi tamamladım arkadaşlar anagram oyunu diye birşey yaptım kelimeler geliyor harflerin yerleri karışmış halde kelimeyi bulmaya çalışıyoruz

şimdi sizden istediğim bana 7 8 harflik kelimeler söylemeniz ki 200 kelimeyi tamamlayayım :D aklınıza gelen kelimeyi söyleyin biraz egzantirik kelimeler de olsun :D

buyrun bi ödevi kontrol edin tasarımı biraz basit oldu sizce nasıl güzelleştirebilirim tavsiyelerinizi bekliyorum

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.

Reklam