2015-08-15 138 views
0

我正在编写一段代码,提取单词的第一个首字母并将其作为首字母缩写词。Java:JOptionPane存在的问题/将输出存储到变量中

例如句子是random number gen答案是RNG

我有它的工作,但我想在JOptionPane显示结果。我无法确定如何将最终输出(3个首字母)保存到变量中,然后在JOptionPane中显示它。

有没有一种方法可以将System.out.print输出存储到字符串变量中?

我最初试图将System.out.print存储到一个变量,但它给了我一个void的错误无法转换为字符串。

所以我试图将字母存储到变量'首字母缩写',但它只存储一个(这是有道理的)。 import javax.swing.JOptionPane;

public class ThreeLetterAcronym { 

    public static void main(String[] args) { 
     String answer; 
     String upperAnswer; 
     int number; 
     char letter; 
     String initial = ""; 

     answer = JOptionPane.showInputDialog(null, "Please enter three words?", "Input", JOptionPane.QUESTION_MESSAGE); 
     upperAnswer = answer.toUpperCase(); 
     upperAnswer = " " + upperAnswer; 
     number = upperAnswer.length(); 

     StringBuilder sb = new StringBuilder(); 

     for (int i = 0; i < number; i++) { 
      letter = upperAnswer.charAt(i); 
      if (letter == ' ') { 
       initial = Character.toString(upperAnswer.charAt(i + 1)); 
       sb.append(initial); 
       System.out.print(upperAnswer.charAt(i + 1)); 
      } 
     } 
     JOptionPane.showMessageDialog(null, sb.toString(), "Acronym", JOptionPane.INFORMATION_MESSAGE); 
    } 
} 

回答

1

你在你的输出消息对话框,将在继续循环和存储最后一个每次重置使用initial。所以,我将它存储到StringBuilder。这里是工作代码,

import javax.swing.JOptionPane; 

public class ThreeLetterAcronym { 

    public static void main(String[] args) { 
     String answer; 
     String upperAnswer; 
     int number; 
     char letter; 
     String initial = ""; 

     answer = JOptionPane.showInputDialog(null, "Please enter three words?", "Input", JOptionPane.QUESTION_MESSAGE); 
     upperAnswer = answer.toUpperCase(); 
     upperAnswer = " " + upperAnswer; 
     number = upperAnswer.length(); 

     StringBuilder sb = new StringBuilder(); 

     for (int i = 0; i < number; i++) { 
      letter = upperAnswer.charAt(i); 
      if (letter == ' ') { 
       initial = Character.toString(upperAnswer.charAt(i + 1)); 
       sb.append(initial); 
       System.out.print(upperAnswer.charAt(i + 1)); 
      } 
     } 
     JOptionPane.showMessageDialog(null, sb.toString(), "Acronym", JOptionPane.INFORMATION_MESSAGE); 
    } 
} 
+0

我没有考虑使用StringBuilder。谢谢。 – BeginnerHelp

+0

这解决了我的问题。 – BeginnerHelp