黑马程序员技术交流社区
标题:
这道题倒数第二句什么意思
[打印本页]
作者:
专家
时间:
2015-11-30 18:40
标题:
这道题倒数第二句什么意思
package
面试题;
import
java.util.Map;
import
java.util.Scanner;
import
java.util.TreeMap;
public
class
Test5 {
/*
* 7、取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...
*/
public
static
void
main(String[] args) {
Scanner sc
=
new
Scanner(System.in);
System.out.println(
"请输入一行字符串:"
);
String line
=
sc.nextLine();
char
[] chs
=
line.toCharArray();
TreeMap
<
Character, Integer
>
tm
=
new
TreeMap
<
>
();
for
(
char
c
:
chs) {
tm.put(c, tm.get(c)
==
null
?
1
:
tm.get(c)
+
1
);
}
StringBuilder sb
=
new
StringBuilder();
for
(Map.Entry
<
Character, Integer
>
entry
:
tm.entrySet()){
sb.append(entry.getKey()).append(
"("
).append(entry.getValue()).append(
")"
);
}
System.out.println(sb.toString());
}
}
作者:
向上自由心
时间:
2015-11-30 18:40
append是Stringbuilder类的添加方法,api中可以查到,好好看一下课程12天,13天
作者:
未来大神
时间:
2015-11-30 19:28
用得着这么麻烦吗,直接遍历字符串不行吗
作者:
jiangshicun007
时间:
2015-11-30 20:59
public class test4 { // 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" , // 输出格式为:a(2)b(1)k(2)... public static void main(String[] args) { String str = "abcdekka27qoq"; String regex = "\\d"; String[] arr = str.split(regex); String st1 = ""; for (int i = 0; i < arr.length; i++) { // System.out.print(arr[i]); st1 = st1 + arr[i]; } String st2 = ""; HashMap<Character, Integer> mp = new HashMap<>(); char[] arr1 = st1.toCharArray(); for (char c : arr1) { if (!mp.containsKey(c)) { mp.put(c, 1); } else { mp.put(c, mp.get(c) + 1); } } for (char key : mp.keySet()) { st2 = st2 + key + "(" + mp.get(key) + ")"; } System.out.println(st2); } }
作者:
jiangshicun007
时间:
2015-11-30 21:49
public class test4 { // 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" , // 输出格式为:a(2)b(1)k(2)... public static void main(String[] args) { String str = "abcdekka27qoq"; String regex = "\\d"; String[] arr = str.split(regex); String st1 = ""; for (int i = 0; i < arr.length; i++) { // System.out.print(arr[i]); st1 = st1 + arr[i]; } String st2 = ""; HashMap<Character, Integer> mp = new HashMap<>(); char[] arr1 = st1.toCharArray(); for (char c : arr1) { if (!mp.containsKey(c)) { mp.put(c, 1); } else { mp.put(c, mp.get(c) + 1); } } for (char key : mp.keySet()) { st2 = st2 + key + "(" + mp.get(key) + ")"; } System.out.println(st2); } }
作者:
jiangshicun007
时间:
2015-11-30 21:50
我日给你发的代码没法看了!apppend追加的意思,是Stringbuffer,和Stringbuder里面的添加方法
作者:
xinxiangchen
时间:
2015-11-30 22:07
sb.append(entry.getKey())-->将entry中的Key添加进sb,返回sb
.append("(")-->将"("添加进sb,返回sb
.append(entry.getValue())-->将entry中的value添加进sb,返回sb
.append(")");-->将")"添加进sb,返回sb
共四次添加进了sb-->Key(Value)
作者:
袁有福123
时间:
2015-11-30 23:33
字符串的拼接吧 可以去查看api文档
作者:
活在当下学IOS
时间:
2015-11-30 23:34
等我学会了 我就告诉你
作者:
奔跑的小红帽
时间:
2015-11-30 23:45
将双列集合中的键和值取出来,用StringBuilder的append方法拼接为a(2)b(1)k(2)这种格式,也可以在 System.out.println打印时加“(”和“)”,不用使用StringBuilde
作者:
Jhon
时间:
2015-12-1 00:17
好厉害的样子 看不懂
作者:
萧未然
时间:
2015-12-1 00:18
sb.append(entry.getKey()).append("(").append(entry.getValue()).append(")");
把它拆开:
sb.append(entry.getKey())
sb.append("(");
sb.append(entry.getValue());
sb.append(")");
它只是使用了简写而已,没什么好看的,还是分开好,有条理些吧
作者:
孜孜不倦
时间:
2015-12-2 14:19
append函数的意思及用法
功能说明:以可写方式打开文件。如果文件不存在,将会自动创建。使用该函数,将会覆盖文件中的所有内容。
参考实例:
var
F: TextFile; // 声明文本文件类型变量
begin
AssignFile(F, 'C:\MyFile.txt'); // 将C:\MyFile.txt文件与F变量建立连接,后面可以使用F变量对文件进行操作。
Rewrite(F); // 打开文件。如果文件不存在,将会在C盘中创建MyFile.txt文件。如果文件存在,将会覆盖MyFile.txt中的所有内容。
end;
+++++++++++++++++
Append
功能说明:追加内容到文件中。文件必须要存在。
参考实例:
var
S: String;
F: TextFile;
begin
S := 'This is a book.';
AssignFile(F, 'C:\MyFile.txt'); // 将C:\MyFile.txt文件与F变量建立连接,后面可以使用F变量对文件进行操作。
Append(F); // 以追加的方式打开文件
Writeln(F, S); // 将S变量中的内容追加到文本尾后。
CloseFile(F); // 关闭文件
end;
++++++++++++++++++++++++
//判断文件是否存在 FileExists
var
f: string;
begin
f := 'c:\temp\test.txt';
if not FileExists(f) then
begin
//如果文件不存在
end;
end;
作者:
许鹏飞
时间:
2015-12-3 09:58
楼主倒数第二句改成这样应该能看懂了吧,对了,把最后一句删掉!倒数第二句改成如下:
System.out.print(entry.getKey())+"("+entry.getValue()+")");
把这个代码替换掉原有的代码,看看答案是否一样?
其实那个append是字符串缓冲区,append是添加的意思,相当于+号,有用选择我为答案哦
作者:
13666619050
时间:
2015-12-3 19:47
字符串的拼接
作者:
liuyong
时间:
2015-12-3 21:08
它的意思就是输出a(2)b(1)k(2)...这样的格式,append是string中的追加功能,具体如下,因为括号过多,理解麻烦,可以剥离理解:
sb.append(entry.getKey()).append("(").append(entry.getValue()).append(")");相当于sb.append(entry.getKey())获取键的值,比如获取的是a,.append("(")就是在值后加个左括号(,接下来.append(entry.getValue())就是在(后添加键所对应的个数,比如a对应的个数,.append(")")就是接着添加一个右括号)
作者:
liuzhipeng
时间:
2015-12-4 00:31
孜孜不倦 发表于 2015-12-2 14:19
append函数的意思及用法
功能说明:以可写方式打开文件。如果文件不存在,将会自动创建。使用该函数,将会 ...
姐们的黑马币可以是负分了
作者:
孜孜不倦
时间:
2015-12-4 15:37
啥意思?
作者:
二十七杯酒
时间:
2015-12-4 20:41
这道题,用到一个知识点map集合的put方法:添加键,返回值,map集合元素(key,value),用value统计个数最后得到是键值对形式的答案,遍历得到key和value,到第二句是为了拼接:得到这种格式a(2)b(1)k(2)
作者:
744919632
时间:
2015-12-8 11:38
取出键和值。
作者:
pumpkin
时间:
2015-12-8 11:50
tm已经记录了每一个字母出现的次数。最后一个循环就是遍历tm,并且生成结果字符串,那段话可以拆成这样:
Character key = entry.getKey();
Integer value = entry.getValue();
sb.append(key+"("+value+")");
作者:
cai602098596
时间:
2015-12-8 22:01
apppend()方法就是再一个字符串的末尾后面追加()里面的东西
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2