2014-10-12 9 views
14

मैं एक जावा स्ट्रिंग से एक java.util.streams.IntStream करने के बारे में this question पाया, लेकिन मैं इस विधि अब नहीं मिला है कि मैं उपयोग कर रहा हूँ जावा 8.एक स्ट्रिंग को जावा 8 अक्षरों में स्ट्रीम करने के लिए कैसे परिवर्तित करें?

सुधार: तुम लोगों ने बताया रूप में, मैं जावा उपयोग कर रहा था 7. अब विधि chars() है। लेकिन सवाल अभी भी लागू होता है:

मैं स्ट्रिंग से Stream<Character> कैसे प्राप्त कर सकता हूं?

उत्तर

31

मैं इस विषय पर my earlier answer की ओर आकर्षित करना जा रहा था, लेकिन यह है कि आप पहले से ही that question से लिंक किया है पता चला है। other answer भी उपयोगी जानकारी प्रदान करता है।

आप char मूल्यों चाहते हैं, आप String.chars() द्वारा IntStream लौटे का उपयोग करें और जानकारी की हानि के बिना char को int मूल्यों डाली कर सकते हैं। अन्य उत्तरों ने समझाया कि Stream कक्षा के लिए आदिम विशेषज्ञता क्यों नहीं है।

यदि आप वास्तव में Character ऑब्जेक्ट्स बॉक्सिंग चाहते हैं, तो का उपयोग IntStream से संदर्भ प्रकार की एक स्ट्रीम में कनवर्ट करने के लिए करें। mapToObj() के भीतर, int मान char पर डालें। चूंकि किसी ऑब्जेक्ट को यहां रिटर्न वैल्यू के रूप में अपेक्षित होने की उम्मीद है, char को Character में ऑटोबॉक्ड किया जाएगा। इसका परिणाम Stream<Character> है। उदाहरण के लिए,

Stream<Character> sch = "abc".chars().mapToObj(i -> (char)i); 
sch.forEach(ch -> System.out.printf("%c %s%n", ch, ch.getClass().getName())); 

a java.lang.Character 
b java.lang.Character 
c java.lang.Character 
2

कृपया सुनिश्चित करें कि आप जेडीके 8 का उपयोग कर रहे हैं। यह विधि स्ट्रिंग द्वारा कार्यान्वित CharSequence इंटरफ़ेस में स्थित है।

यह स्निपेट ठीक काम करता है:

import java.util.stream.IntStream; 

public class CharsSample { 

    public static void main(String[] args) { 
     String s = "123"; 
     IntStream chars = s.chars(); 
    } 
} 
+1

विधि वर्ण() आधार वर्ग CharSequence में है! – isnot2bad

+0

हाँ, मुझे जावा 7 का उपयोग करने के लिए धीरे-धीरे मिला है। लेकिन मैं एक स्ट्रिंग से स्ट्रीम कैसे प्राप्त कर सकता हूं? – ElderMael

+0

@ElderMael क्या आप जावा 7 या जावा 8 का उपयोग कर रहे हैं? जावा 8 के लिए ये विधियां और प्रकार नए हैं। –

संबंधित मुद्दे