Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > задача с очередью на java


Автор: cristianr 21.12.2013, 11:59
Помогите пожалуйста решить 2 задачи , не получается решить  smile 
1)Дан текстовый файл. Используя очередь, переписать содержимое его строк в новый текстовый файл, перенося при этом в конец каждой строки все входящие в нее цифры, сохраняя исходный порядок следования среди цифр и среди остальных символов строки. 
2)Определить название цвета радуги, следующего за заданным цветом.
Заранее спасибо smile Буду благодарен за любую помощь

Автор: Atum 23.12.2013, 10:01
Код

    //красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый
    //red, orange, yellow, green, blue, indigo, violet
    enum RainbowColor{
    RED("красный"),
    ORANGE("оранжевый"),
    YELLOW("оранжевый"),
    GREEN("зеленый"),
    LIGHTBLUE("голубой"),
    BLUE("синий"),
    VIOLET("фиолетовый"),
    END("Это был крайний цвет");
    
    private String value;

        public String getValue() {
            return value;
        }

    
    
        private RainbowColor(String value) {
            this.value = value;
        }
        
        public static RainbowColor getNextColor( String value){
            if(value == null || value.isEmpty()) return null;
            RainbowColor[] arr = RainbowColor.values();
            for (RainbowColor color : arr) {
                if(color.getValue().equals(value.toLowerCase())){
                     return arr[color.ordinal()+1];
                }
            }
            
        return null;
        }
        
    }
    
    public static void main(String[] args) {
        System.out.println(RainbowColor.getNextColor("красный"));
        System.out.println(RainbowColor.getNextColor("красный").getValue());
        
        System.out.println(RainbowColor.getNextColor("зеленый"));
        System.out.println(RainbowColor.getNextColor("зеленый").getValue());
        
        System.out.println(RainbowColor.getNextColor("фиолетовый"));
        System.out.println(RainbowColor.getNextColor("фиолетовый").getValue());
    }
   
}


Автор: Atum 23.12.2013, 10:49
Первое условие не совсем понял - в очередь читать строки файла ? 

Код

public class StringFile {

    private final static String value = "sdf sg345 565 dfgdfg 4  er56 j";
    private final static String numbers = "0123456789";

    public static void main(String[] args) throws IOException {

       // test 
        String newString = formatString(value);
        System.out.println(newString); //sdf sg  dfgdfg   er j345565456
        
        
        //writeFile();
    }

    private static String formatString(String string) {
        LinkedList list = new LinkedList();
        int n = 0;
        for (int i = 0; i < string.length(); i++) {
            Character ch = string.charAt(i);
            if (numbers.contains(ch.toString())) {
                list.addLast(ch);
                n++;
            } else {
                list.add(i - n, ch);
            }

        }

        StringBuilder sb = new StringBuilder();
        for (Object e : list) {
            sb.append(e);
        }
        return sb.toString();
    }

    private static void writeFile(File input , File output) throws IOException {
        //Scanner scanner = new Scanner(new File("input.txt"));
        Scanner scanner = new Scanner(input);
        //FileWriter fw = new FileWriter(new File("out.txt"));
        FileWriter fw = new FileWriter(output);
        BufferedWriter bw = new BufferedWriter(fw);
        
        while(scanner.hasNextLine()){
            bw.write(formatString(scanner.nextLine()));
            bw.newLine();
        } 
        bw.close();
        fw.close();
       scanner.close();
    }
}


Автор: cristianr 23.12.2013, 22:22
Спасибо большое!!!)))очень помогли)))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)