请问:
我有一个数组myArray(9),里面有10个元素:
农民
工人
知识分子
农民
农民
知识分子
工人
农民
农民
工人
如何用循环或其他什么方法,去掉其中的重复元素,得出"农民","工人"和"知识分子",也就是得到的新数组只有三个元素。同时得出每个种类的重复次数,也就是说“农民”重复5次,“工人”重复3次
"知识分子"重复2次。
请写清楚点,我是新手,谢谢~!
我有一个数组myArray(9),里面有10个元素:
农民
工人
知识分子
农民
农民
知识分子
工人
农民
农民
工人
如何用循环或其他什么方法,去掉其中的重复元素,得出"农民","工人"和"知识分子",也就是得到的新数组只有三个元素。同时得出每个种类的重复次数,也就是说“农民”重复5次,“工人”重复3次
"知识分子"重复2次。
请写清楚点,我是新手,谢谢~!
Option ExplicitPrivate Sub Form_Load()
Call setList1(List1)
Call setList2(List1, List2)
End SubPrivate Sub setList1(ByVal objList As ListBox)
objList.AddItem "1"
objList.AddItem "2"
objList.AddItem "3"
objList.AddItem "1"
objList.AddItem "3"
objList.AddItem "2"
objList.AddItem "3"
objList.AddItem "1"
objList.AddItem "1"
objList.AddItem "2"
End SubPrivate Sub setList2(ByVal objListSource As ListBox, ByVal objListResult As ListBox)
Dim I As Long
Dim int_Num As Long
Dim tmpStr As String
tmpStr = objListSource.List(I)
objListResult.AddItem tmpStr
Do While I < objListSource.ListCount
If tmpStr <> objListSource.List(I) Then
tmpStr = objListSource.List(I)
objListResult.List(objListResult.ListCount - 1) = objListResult.List(objListResult.ListCount - 1) + "|" + CStr(int_Num)
objListResult.AddItem tmpStr
int_Num = 0
End If
int_Num = int_Num + 1
I = I + 1
Loop
objListResult.List(objListResult.ListCount - 1) = objListResult.List(objListResult.ListCount - 1) + "|" + CStr(int_Num)
End Sub
"user32" Alias "SendMessageA" (ByVal hWND As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
ByVal lParam As String) As LongPrivate Const LB_FINDSTRINGEXACT = &H1A2 '在 ListBox 中精确查找Private Sub Form_Load()
List1.Visible = False
End SubPrivate Sub Command1_Click()
Dim i As Integer, n As Integer
List1.Clear
For i = 0 To Ubound(myArray)
n = SendMessagebyString(List1.hWnd, LB_FINDSTRINGEXACT, -1, myArray(i))
If n < 0 then
List1.AddItem myArray(i)
List1.ItemData(List1.NewItem) = 1
Else
List1.ItemData(n) = List1.ItemData(n) + 1
End If
Next i
For i = 0 To List1.ListCount - 1
MsgBox List1.List(i) & ":" & List1.ItemData(i)
Next i
End Sub