CV'me Gözat

Flutter Yazı Birleştirme İşlemleri

Haziran 3, 2021

Flutter Yazı Birleştirme İşlemleri

Flutter Yazı Birleştirme İşlemleri ile uzun bir aradan sonra karşınızdayım…

Bazen apiden gelen ya da kendi eklediğimiz yazıları birleştirmek isteyebiliriz. Örneğin apiden ayrı ayrı gelen ad ve soyad bilgileri gibi…

Bende apiden gelen ad soyad bilgilerini birleştirmek isterken belki birileride bu sorunun cevabını şuan intertte arıyordur diye bloğumda yazmak istedim..

Lafı daha fazla uzatmadan hemen işlemlerimize geçelim. Öncelikle herkesin apiden veri çekme durumu olmadığını bildiğim için dartpad.dev üzerinden kendi ekleyeceğim string veriler üzerinden bu işlemleri gerçekleştireceğim. İlk önce bazı küçük noktalara değineceğim.

.toUpperCase()

String verilerle çalışırken rastlayabileceğiniz bir metot olur kendileri. Ne işe yarar derseniz kendisi kelimeyi ya da metni tamamen büyük harflere çevirir.

Hemen örnek yapalım. Çünkü neden yapmayalım.. Ancak ben hemen büyük resmin kendisini paylaşmayacağım. Metodu kullandığımız yere odaklanalım.

String ad ="abdullah"; //string tipinde bir değişken oluşturup içerisine abdullah adlı veriyi atadım.
 @override
 Widget build(BuildContext context) {
   return Text('${ad.toUpperCase()} ',//ad değişkenini al ve içeriğini ekrana TAMAMI BÜYÜK Olacak şekilde yazdır diyoruz
          style: Theme.of(context).textTheme.headline4);
 }

Görüyorsunuz. Anlatmayacağım… Mükemmel… 😀

Buraları uzatmak istemediğim için hemen ikinci bir metoda geçmek istiyorum.

.substring()

String verilerde istenilen karakter kadar verinin geri döndürülmesini sağlamak için SUBSTRING fonksiyonu kullanılır.

String ad ="abdullah";
 @override
 Widget build(BuildContext context) {
   return Text('${ad.substring(1)} ', //kelimenin birinci indeks değerinden itibaren gösterilmesini sağlar. 1 yazmamın sebebi o :)
         style: Theme.of(context).textTheme.headline4);
 }

Flutter üzerinde bu metodu kullanırsanız sizden bir start yani başlangıç değeri girmenizi ister bu da int yani sayısal değer tipindedir. Bu değeri alır ve değerin denk geldiği indeksten itibaren kelimeyi ekrana basar. Hemen çıktısını görelim

Gördüğünüz gibi a harfini baz almadan ekrana çıktıyı verdi. String olarak yazdığımız verileri indeks numaralarına sahiptir. substring metodu ile bu indeks değerine göre işlemler yapabiliriz. Örneğin isim soyisim yazarken ad bilgisinin sadece baş harfini soyadının ise tamamını alabiliriz. Bir örnek daha gelsin madem 😀

Bunu yapabilmek için sadece başlangıç değeri değil aynı zamanda birde bitiş değeri ister bizden substring metodu. Örneğimize hemen göz atalım.

String ad ="abdullah";
  String soyad ="taş";//soyad bilgiside ekledim
  @override
  Widget build(BuildContext context) {
    return Text('${ad.substring(0,1)} ',//bitiş değerinide ekledim. Yani sıfırıncı indeksten yola çık birinci indekste dur dedim
           style: Theme.of(context).textTheme.headline4);
  }

Bunun çıktısı sadece “a” olacaktır. Erindim görselini atmaya 😀

Ama bizim istediğimiz olay bu değil hemen aşağıdaki örneği inceleyelim. Çünkü istediğimiz olay bu örnekte.

String ad ="abdullah";
  String soyad ="taş";
  @override
  Widget build(BuildContext context) {
    return Text('${ad.substring(0,1)}.$soyad', //ad değerini aldıktan sonra araya nokta bıraktım. bu herhangi bir metot değer çağırmıyor
                                               // daha sonra soyad değişkenini çağırdım. çıktısı şu: a.taş
             style: Theme.of(context).textTheme.headline4);
  }

Çıktısıda yukarıdaki gibi olacaktır.

Peki artık sadede gelelim. Yapmak istediğim şey İsim ve soyisim bilgisini kısaltmadan ancak baş harfleri büyük devamı küçük halde ekrana yazdırmak.

Çok yazmayalım hemen örneğe ve çıktıya bakalım..

String ad ="abdullah";
  String soyad ="taş";
  @override
  Widget build(BuildContext context) {
    return Text('${ad[0].toUpperCase()}${ad.substring(1)} ${soyad[0].toUpperCase()}${soyad.substring(1)}', style: Theme.of(context).textTheme.headline4);
  }

Hemen özetleyelim; ad ve soyad değişkenlerinin sıfırıncı indeksini alıp büyük yap diyoruz sonrasında ise substring metodu ile birinci indeksten itibaren tüm kelimeleri getir diyoruz. Neden sıfırıncı demedik çünkü sıfırıncı indeksi toUpperCase adeta bir kartal,şahin edasıyla kaptı kendini götürdü 😀 Sıfırıncı indeksten başla derseniz şöyle bir çıktı elde edersiniz: Aabdullah Ttaş. Yani aynı harfi iki kere yazdırmış olursunuz..

Umarım sizler için faydalı olur… Kodların tamamı aşağıda yer almakta. Dartpad.dev adresi üzerinden yeni bir flutter uygulaması oluşturarak deneyebilirsiniz.

TÜM KODLAR

import 'package:flutter/material.dart';

final Color darkBlue = Color.fromARGB(255, 18, 32, 47);

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData.dark().copyWith(scaffoldBackgroundColor: darkBlue),
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Center(
          child: MyWidget(),
        ),
      ),
    );
  }
}

class MyWidget extends StatelessWidget {
 
  String ad ="abdullah";
  String soyad ="taş";
  @override
  Widget build(BuildContext context) {
    return Text('${ad[0].toUpperCase()}${ad.substring(1)} ${soyad[0].toUpperCase()}${soyad.substring(1)}', style: Theme.of(context).textTheme.headline4);
  }
}

 

Posted in Blog, Dart, FlutterTags:
Write a comment