2016-03-29 15 views
0

Merhaba Java'da yeni başlayan biriyim ve şu anda sadece şu anda temel konulardan bahsediyorum, o yüzden lütfen bana çıplak bakın.Java'da bir String içinde belirli harfler nasıl yazdırılır

Dize değişkeni içindeki bir adın 2, 3 ve 4 harflerini yazdırmak için bir görev ayarladım.

Yani örneğin adım John ve ben harflerinden yazdırmak istiyorum 'o h ve n sadece'

ben bu görevi yürütmek için kullanabileceğiniz özel bir yöntem olup olmadığını merak, değilse en iyi yaklaşım hangisidir? Sen String üzerinde charAt işlevini kullanarak bunu yapabilir

Çok teşekkürler

+0

String sınıfının .charAt() yöntemini göz önünde, ve uygun bir şekilde başlatıldı bir döngü kullanımı:

YAPI BAŞARILI (0 saniye toplam süre) Ohn.String'in substring() yöntemi de bir olasılıktır. String sınıfındaki javadocs'ı okuyun. – KevinO

+0

java'nın bir çok dökümü var [javadocs] (https://docs.oracle.com/javase/8/docs/api/) Genellikle ne istediğinizi az çaba ile bulabilirsiniz. [substring] (https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring (int,% 20int)) – BevynQ

+0

'System.out.println (variable.substring (1)); –

cevap

2

DÜZENLEME adı uzunluğu veya 4 küçük çözer olup olmadığını belirlerken, işaret istisnalara neden olacak sorunlar. Bu girişi dahil etmeyi güncelledim.

Yazdırmaya çalıştığınız yere bağlıdır. Bir for döngü kullanabilir ve böylece gibi senin String name 1. endeksinde başlayan yineleme:

String name = "John"; 
for(int i = 1; i < Math.min(name.length(), 4); i++){ 
    System.out.print(name.charAt(i)); 
} 

Numune Partisi:

çalışma:

YAPI BAŞARILI (toplam süre ohn: 0 saniye)

Sen böyle bir zamanda Character bir çıktısını verebilir

:

System.out.print(name.charAt(1)); //print character at index 1 
System.out.print(name.charAt(2)); //print character at index 2 
System.out.print(name.charAt(3)); //print character at index 3 

Bu, güvensiz olabilir çünkü adın gerçekte en az 4 Characters uzunluğunda olacağından emin değilsiniz. Numune çalışma:

çalışma:

YAPI BAŞARILI (toplam süre: 0 saniye) ohn

Ya da güvenlidir belki en kolay yolu, sen String.substring() kullanarak çıktısını hangi şöyle bir aralıkta gerçekleşir:

:

System.out.println(name.substring(1, Math.min(name.length(), 4))); 

Bu sonuçlanır

çalıştırma:

+0

.substring (1, Min (name.length(), 4)), String uzunluğunun son sorununu önler. Sorunun doğru bir şekilde okunması durumunda ilk çözüm 3. basılmış karakterde durmaz (name.length() 'e sahiptir ancak soru sadece 2.3.4'tür). – KevinO

+0

@KevinO, girdinizi benim cevabım içine dahil etti. Teşekkürler! – robotlos

0

. Aşağıdaki kod sürümü, istediğiniz şeyi yapmalıdır. adı her zaman en az 4 harf vardır varsayarsak

public static void main(String[] args) { 
    String input = "John"; 
    if (input != null && input.length() > 1) { 
       System.out.println(input.substring(1, Math.min(input.length(), 4)));  
    } 
} 
+0

Bu işe yarayabilir, ancak bu tür ve korumak zor. Ayrıca, aynı satırda değil, yığılmış bir sütunda yazdıracaktır. (Yazdırmak için baskı yapılmıyorsa). – KevinO

+0

@KevinO kodu endişelerinizi karşılamak üzere düzenlenmiştir. StringIndexOutOfBoundsException – alphablue

+1

'dan kaçınmak için uzunluğu kontrol etmeliyiz, StringIndexOutOfBounds bir sorundur. Fakat eğer (input! = Null && input.length()> 1) { System.out.println (input.substring (1, Math.min (input.length(), 4))); } '. Birinin sadece uzunluğunun bir kereden fazla olmasını sağlaması gerekir. – KevinO

0

, bu kod çalışır: @KevinO olarak

public static void main(String[] args) { 
    String name = "JOHN"; 
    System.out.println(name.substring(1,4)); 
} 
İlgili konular