Я делаю простую программу рисования и застрял в получении определенной части строки. Вот и проблема. Когда я сохраняю изображение с 9 панелями, он сохраняет значения RBG каждой панели в файле .txt. Пример:Получение значений из строки
- java.awt.Color [г = 0, г = 0, B = 0]
- java.awt.Color [г = 255, G = 255, B = 255]
- java.awt.Color [г = 255, г = 0, B = 0]
- java.awt.Color [г = 0, г = 0, B = 255]
- java.awt.Color [г = 0, g = 0, b = 0]
- java.awt.Color [r = 255, g = 255, b = 0]
- java.awt.Color [r = 255, g = 255, b = 0]
- java .awt.Color [г = 255, г = 0, B = 0]
- java.awt.Color [г = 0, г = 0, B = 255]
Отсюда, я называю сканер, чтобы прочитать строки нашего файла. Мне просто нужно найти лучший способ извлечь значения внутри [] в String. Я пробовал использовать токенизатор безрезультатно, все еще застряв с лишними Строками. Я пробовал манипулировать символами, но снова не смог. Какой был бы лучший способ извлечь данные из наших скобок? И было бы легче хранить отдельные значения r = xxx, b = xxx, g = xxx для строки String []? Спасибо, и вот источник, который у меня есть до сих пор:
import java.awt.Color;
import java.io.*;
import java.lang.*;
import java.util.*;
//when finished, organize imports (narrow down what imports were used)
public class SaveLoad {
private boolean tryPassed, tryPassed2;
private Formatter x;
//final String[] rawData; will be where the rgb raws are stored
private Scanner xReader;
public void save(Color[] c, String s) {
//s is the filename
int counter = c.length;
//Tries to create a file and, if it does, adds the data to it.
try{
x = new Formatter(s+".txt");
tryPassed = true;
while(counter>0) {
x.format("%s. %s\n", (c.length-(counter-1)), c[counter-1]);
counter--;
}
x.close();
}catch (Exception e){
e.printStackTrace();
tryPassed = false;
}
}
//load will take paramaters of a filename(string); NOTE:::: make the file loaded specify an appendix (ex] .pixmap)
//MAYBE add a load interface with a jDropdownmenu for the filetype? add parameter String filetype.
public void load(String s, String filetype) {
//loads the file and, if successful, attempts to read it.
try{
xReader = new Scanner(new File(s+filetype));
tryPassed2 = true;
}catch(Exception e){
e.printStackTrace();
tryPassed2 = false;
System.out.println(s+filetype+" is not a valid file");
}
while(xReader.hasNext()&&tryPassed2==true) {
String inBrackets = xReader.next().substring(17);
System.out.println(inBrackets);
}
}
}
Также игнорируйте мои грязные обозначения.
FYI, вы упустили самый важный тег: [tag: java]. –
Embarrasing, исправил его примерно за минуту до публикации: S Спасибо xP – nolasaint
Собственно, ваше исправление противоположно тому, что я имел в виду. Вместо добавления «(Java)» к вашему заголовку просто добавьте [tag: java] в теги в нижней части вопроса. Я уже исправил оба. –