str.append,strappendegetActioCommand
定义一个string str 然后 str.append(参数)参数只能接受哪些类型?
append函数是向string 的后面追加字符或字符串。
(1)向string 的后面加C-string
basic_string append( const value_type* _Ptr );
string s ( "Hello " ); // s=”Hello ”
const char *c = "Out There ";
s.append ( c ); // s=”Hello Out There”
(2)向string 的后面加C-string 的一部分
basic_string append( const value_type* _Ptr, size_type _Count );
string s ( "Hello " ); // s=”Hello ”
const char *c = "Out There ";
s.append ( c , 3 ); // s=”Hello Out”
(3)向string 的后面加string(有两种方法)
basic_string append( const basic_string _Str );
string s1 ( "Hello " ), s2 ( "Wide " ), s3( "World " );
s1.append ( s2 ); // s1=”Hello Wide”
s1 += s3; // s1=”Hello Wide World”
(4)向string 的后面加string 的一部分 ---A
basic_string append( const basic_string _Str, size_type _Off,
size_type _Count );
string s1 ( "Hello " ), s2 ( "Wide World " );
s1.append ( s2 , 5 , 5 ); // s1=”Hello World”
(5)向string 的后面加string 的一部分 ---B
templateclass InputIterator basic_string append(
InputIterator _First, InputIterator _Last );
string str1f ( "Hello " ), str2f ( "Wide World" );
str1f.append ( str2f.begin ( ) + 5 , str2f.end ( ) );
// s1=”Hello World”
(6)向string 的后面加多个字符
basic_string append( size_type _Count, value_type _Ch );
string str1e ( "Hello " );
str1e.append ( 4 , '!' ); // s1=”Hello !!!!”
参考:
什么是字符串追加
一般字符串追加说的都是 StringBuilder,
StringBuilder str = new StringBuilder();
str.Append("abc");
string str1="aa"+"bb";
StringBuilder str = new StringBuilder("aa");
str.Append("bb");
效果一样,但是本质是不一样的。
JAVA中Stringbuilder类的方法是什么?
如果程序对附加字符串的需求很频繁,不建议使用+来进行字符串的串联,而应该使用java.lang.StringBuilder类,从而使效率大大提高。1、append 就是将信息追加到当前 StringBuilder 的结尾,例如:StringBuilder sb=new StringBuilder("abc");sb.append("123");System.out.println(sb);//输出abc1232、Insert 就是将字符串或对象插入到当前 StringBuilder 对象的指定索引处,例如:StringBuilder sb=new StringBuilder("abc");sb.insert(2, "123");
System.out.println(sb);//输出ab123c3、delete 就是删除指定开始索引到结束索引处的字符,作用等同于remove方法,例如:StringBuilder sb=new StringBuilder("abc");sb.delete(0, 1);//删除从索引0到1的字符
System.out.println(sb);//输出bc4、replace 就是替换指定索引处的指定字符,例如:StringBuilder sb=new StringBuilder("abc");sb.replace('b', 'B');
System.out.println(sb);//输出aBc另外,你说的toString是每个继承于Object对象的类都有的方法,作用是将对象转换为显示的字符串,SringBuilder重写了这个方法,返回StringBuilder对象的字符串内容。在使用System.out.println()输出对象时,如果不显示调用toString方法,该方法会被自动调用。
用java回答,求大神解决
public static void main(String[] args) {
System.out.println("欢迎使用智能题目生成系统");
LinkedHashMapString, LinkedHashMapString, String map = new LinkedHashMapString, LinkedHashMapString, String();
LinkedHashMapString, String map2 = new LinkedHashMapString, String();
map2.put("1、一级运算", "");
map2.put("2、二级运算", "");
map2.put("3、混合运算", "");
LinkedHashMapString, String mapfang = new LinkedHashMapString, String();
mapfang.put("1、一元方程式", "");
mapfang.put("2、二元方程式", "");
mapfang.put("3、多元方程式", "");
map.put("1、运算式", map2);
map.put("2、方程式", mapfang);
map.put("0、退出", null);
String firstIn = "";
String senIn = "";
String cnt = "";
boolean status = true;
while (status) {
System.out.println("请选择题型");
for (String key : map.keySet()) {
System.out.println(key);
}
String str = getImport();
if (str.equals("0")) {
status = false;
System.out.println("再见!");
} else {
boolean checkF = false;
String keyS = "";
while (true) {
for (String key : map.keySet()) {
if (key.startsWith(str)) {
checkF = true;
keyS = key;
firstIn = str;
MapString, String maper = map.get(key);
for (String keyer : maper.keySet()) {
System.out.println(keyer);
}
break;
}
}
if (!checkF) {
System.out.println("输入错误,请重新输入");
break;
} else {
boolean checks = false;
String strS = getImport();
for (String keys : map.get(keyS).keySet()) {
if (keys.startsWith(strS)) {
checks = true;
senIn = strS;
while (true) {
System.out.println("请输入生成题目数量");
cnt = getImport();
if (!check(cnt)) {
System.out.println("输入错误,请重新输入");
continue;
} else {
createSubject(firstIn, senIn, Integer.valueOf(cnt));
break;
}
}
}
}
if (!checks) {
System.out.println("输入错误,请重新输入");
continue;
} else {
break;
}
}
}
}
}
}
public static void createSubject(String strf, String strs, int num) {
String[] symbols = { "+", "-", "*", "/" };
int count = getNum(10);
if (strf.equals("1")) {
for (int i = 0; i num; i++) {
StringBuffer str = new StringBuffer("第" + (i + 1) + "题:");
for (int j = 0; j count; j++) {
if (j == count - 1) {
str.append(getNum(99));
} else {
str.append(getNum(99));
if (strs.equals("1")) {
str.append(symbols[getNum(2) - 1]);
} else if (strs.equals("2")) {
str.append(symbols[getNum(2) + 1]);
} else if (strs.equals("3")) {
str.append(symbols[getNum(3) - 1]);
}
}
}
str.append("=?");
System.out.println(str.toString());
}
} else if (strf.equals("2")) {
System.out.println("不想写了??");
} else {
System.out.println("未知题目类型");
}
}
public static int getNum(int max) {
Random random = new Random();
int num = random.nextInt(max) + 1;
return num;
}
public static String getImport() {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
if (str.length() = 0) {
str = "NULL";
}
return str;
}
public static boolean check(String str) {
Pattern p = Pattern.compile("[0-9]*");
Matcher m = p.matcher(str);
return m.matches();
}